投稿

ラベル(VBA)が付いた投稿を表示しています

HSPとExcel VBAで情報取得 (その4)

イメージ
1.概要 HSP3やExcel VBAによるCOMオブジェクトの活用事例としての第四弾です。 今回は、前回記事に引き続き、FileSystemObjectによるドライブ情報の取得、ファイルのサイズや属性等の詳細情報を取得して見ます。 また、ファイル関連の情報ばかりでは、つまらないので、少し変わった所として、XMLHTTPによるサーバーからGMT(グリニッジ標準時)を取得 するを取り上げて見ました。COMオブジェクトについては、まだまだ紹介しきれない部分も多々あるのですが、 今回の記事で終わりです。 2.サンプル 2-1.ドライブ情報を取得する ドライブの情報の取得には、FileSystemObjectを使います。Driveオブジェクトはドライブを表すオブジェクトで GetDriveメソッド、Drivesプロパティ、FileオブジェクトとFolderオブジェクトのDriveプロパティから取得でき ます。Driveオブジェクトには以下の12種類のプロパティがります。 ドライブ名、ドライブの種類、ディスクの空きスペースの大きさなどが取得できます。 ドライブ情報取得プロパティ プロパティ 機 能  AvailableSpace  利用可能な空きスペースの大きさを取得する  DriveLetter  ドライブ名(「C」など)を取得する  DriveType  ドライブの種類を取得する  FileSystem  ドライブのファイルシステムを取得する  FreeSpace  利用可能な空きスペースの大きさを取得する  AvailableSpace  ディスクの空きスペースの大きさを取得する  IsRead  ドライブが準備できているかどうかを取得する  Path  コロン付きのドライブ名を取得する  RootFolder  プロパティルートフォルダを表すFolderオブジェクトを取得する  SerialNumb...

HSPとExcel VBAで情報取得 (その3)

イメージ
1.概要 HSP3やExcel VBAによるCOMオブジェクトの活用事例としての第三弾です。 今回は、前回記事に引き続き、日付と時刻やタスクバーのプロパティを表示させます。 また、FileSystemObjectによるファイルやドライブの詳細情報の取得についても取り上げて見ます。 FileSystemObjectはメソッドやパラメータが豊富でファイル操作に係わることはたいていのことはできますが、 HSPやExcel自体もファイル操作命令や関数が備わっているため、実際の実装については、実用面からHSPやExcel標準の関数等 を利用した方が良いと思います。 2.サンプル 2-1.日付と時刻のプロパティを表示させる タスクトレイにある時計の日付と時刻の調整から起動される日付と時刻のプロパティをプ ログラム上から表示します。 WSHでは、シェルのSetTimeメソッドという便利なもが提供さ れています。 HSPでは、 newcom命令でShellApp変数とWshShell変数を COMオブジェクト型として初期化したのち、シェルのSetTime メソッドで日付と時刻のプロ パティを表示起動させます。 ;***** 日付と時刻のプロパティを表示 ***** newcom ShellApp, "Shell.Application" newcom WshShell, "WScript.Shell" ;▼日付と時刻のプロパティ ShellApp->"SetTime" wait 100 ret = WshShell("AppActivate", "日付と時刻") delcom WshShell delcom ShellApp stop '***** 日付と時刻のプロパティを表示 ***** Sub TimeDateprop() Dim wsh, ShellApp As Object Set wsh = CreateObject("Wscript.Shell") Set ShellApp = CreateObject("Shell.Application...

HSPとExcel VBAで情報取得 (その2)

イメージ
1.概要 HSP3やExcel VBAによるCOMオブジェクトの活用事例としての第二弾です。 今回は、前回記事に引き続き、外部ファイルを任意の実行時モードで起動、ディレクトリ名を指定してエクスプローラを起動 するなどのサンプルを作成して紹介します。特殊フォルダのパス定義定数は0~21まであり、1つ1つのパスを取得・確認するために ボタンを配置して確認するようにしていますが、HSPとExcel VBAでは、等価の処理として記述するためにクリックしたボタン のボタンID(番号)で判別するようにしています。 2.サンプル 2-1.外部ファイルを任意の実行時モードで起動させる HSPの標準命令では、exec命令という実行時のモードに応じたアプリケーションの起動ができる便利な命令があります。 これは、外部ファイルを指定された実行時のモードで起動させることができるものです。モードは次のものが指定できます。 モード0 : HSPノーマル実行 モード2 : 最小化モードで実行 モード16 : 関連付けされたアプリケーションを実行 モード32 : 指定したファイルを印刷する このモードは、モード値を組合せて指定することもできますが、最大化した状態での起動や非表示での起動といったものができません。 ここでは、WSHの Runメソッドを利用して様々な実行時制御を実現させます。 また、プログラムの実行が終了するまでスクリプトを待機させるかどうかを示すブール値が指定できます。 HSPでは、newcom命令でWshShell変数をCOMオブジェクト型として初期化したのち、 Runメソッドで実行するコマンド ラインを示す文字列値である実行ファイルのファイル名を含む渡すべきパラメータを指定します。 そして、実行時モードの定数と、実行終了待ちをするかどうかのブール値を指定しています。 Runメソッドで指定できる実行時モードは、全部で11種類ありますが、サンプルにおいては主な6種類のモードを定義してあります。 実際の動作としては、メモ帳 (notepad.exe)を最大化状態で、かつ、終了実行待ちの状態で起動させます。 Runメソッドによる実行モード モード 意 味 0  タスクバーには表示されませ...

HSPとExcel VBAで情報取得 (その1)

イメージ
1.概要 クライアント環境で保持されている固有情報の取得や特殊フォルダーのパスの取得、ウィンドウを任意の表示モードで整列など WScript.ShellのメソッドとShell.Applicationメソッドの各プロパティによるパラメータを渡して 情報の取得・参照や操作を行います。WScript.Shellのメソッドは、ショートカットの作成やアプリケーションの実行、 レジストリの操作などの機能が提供されています。今回は、上記の機能についてHSPとExcel VBAでサンプルを作成して 比較して行きたいと思います。 2.サンプル 2-1.クライアント環境で保持されている固有情報を取得する 環境変数とは、OSのシェルなどに設定されているシステムの各種情報を保持している文字列変数のことです。 これらの情報は設定や変更、追加が可能です。プログラムから参照するためにクライアントの固有情報として 取得しておくと 利用環境に左右されにくい処理を行なうことが可能となります。 取得方法ですが、 WSHのExpandEnvironmentStringsメソッドを使います。 このメソッドは、PROCESS 環境領域に定義された環境変数のみを展開し、環境変数名を "%" で囲むことによって 値を取得することができます。 また、環境変数名は、大文字と小文字は区別されません。 環境変数%OS%ですが、HSPおよびExcel VBAでもWindows NTと取得されますので、Windows APIなど別の方法で 取得するしかありません。 ;***** 環境変数の取得 ***** newcom WshShell, "WScript.Shell" sdim Env,6,512 Env(0) = WshShell("ExpandEnvironmentStrings","comspec : %COMSPEC%") Env(1) = WshShell("ExpandEnvironmentStrings","SystemRoot : %SystemRoot%") Env(2) = WshShell("ExpandEnvir...

HSPとExcel VBAで情報取得 (COMオブジェクトの活用)

イメージ
1.概要 HSP3やExcel VBAでは、COM(コンポーネント・オブジェクト・モデル)が操作できます。 比較的簡単なパラメータを与えるだけで、Windows が持つシステムコンポーネントやフリーで公開されている 各種コンポーネントの機能を利用することでき ます。 HSP3が提供している命令群では、 COMオブジェクトの作成とインターフェースの取得、インターフェース ポインタからのメソッドの呼び出しなど豊富なオブジェクトアクセ ス手段が 提供されています。Excelにおいても、同じです。今回は、HSP3とExcel VBAを比較しながら 機能の確認をするためにCOM操作の入門として比較的移植や理解のしやすい WSH (Windows Script Host(以下WSH) を取り上げて見ました。WSHは、Windowsが標準でサポートするスクリプト環境で、テキストベースのスクリプトを 記述することで、従来のバッチに代わるものとして、GUI環境に頼らずにWindows環境でさ まざまな処理を実行できます。 尚、 具体的なサンプル例などについては、何回かに分けて紹介していく予定 です。 2.WSH(VBScript)の活用法について WSHではスクリプト言語として、VBライクな言語であるVBScriptや、 JavaScriptライクなJScriptを標準で利用できます。 どちらのスクリプト言語を利用しても機能的には大き な違いはありません。HSP3からは、次のCOM関連命令を使って制御します。 HSP3のCOMオブジェクト操作関連命令 No. 命令 役割 1  newcom命令  COMオブジェクト型変数の新規作成 2  delcom命令  COMオブジェクト型変数の破棄 3  comres命令  メソッド返値代入変数を設定する 4  mcall命令  メソッドの呼び出し 5  comevent命令  COMイベントの取得開始 6  querycom命令  COMオブジェクト型変数の作成 7  axob...

過去に取得済み月単位気象データを年単位に統合

イメージ
1.概要 当ブログの 「過去の気象データ検索からのデータ取得」 で気象庁のページより取得済みのデータが溜まっていますので、 今回は、この溜まったデータの整理方法について紹介します。年単位のフォルダに保存している月単位(1月から12月)のブックを1つのブックに統合します。 月別のデータを12枚のシートと年毎に集約した気温データ一覧、気温グラフ一覧、気圧グラフ一覧、湿度グラフ一覧、風速グラフ一覧、日照時間グラフ一覧、降水量グラフ一覧を 加えた計19枚のシートを作成して纏めるものです。 2.使用方法 (1) 気象庁_気象データ統合.xlsm を起動します。 (2)カレントディレクトリに作業用サブフォルダのWORKディレクリを作成し、月別ファイルを      コピーします。 ※作業用のWORKフォルダは必ず作成して下さい。 (3)気象データブック統合処理ボタンをクリックします。 (4)作業用フォルダのWORK内のファイル一覧を取得して、ファイル統合処理を開始します。 (5)統合処理が完了すると、WORK内のコピー元ファイルの削除応答があるので、OKボタンを      クリックします。 ※特別な用途がなければ、通常は削除して下さい。 (6)グラフ作成処理と統合ファイルの作成が全て完了したら、ダイアログのOKボタンを      クリックして処理を終了します。 (7)統合されたファイルは、カレントディレクリに〇〇〇〇年気象情報.xlsxという形式      で出力されるので、月別の管理フォルダと同様に気象年別統計データというフォルダを作成して      管理すると良いと思います。 尚、作成されるシート名は、以下の通りです。(例:2020年の場合) ・2020年1月~2020年12月 (計12シート) ・気温データ一覧 ・気温グラフ一覧 ・気圧グラフ一覧 ・湿度グラフ一覧 ・日照時間グラフ一覧 ・風速グラフ一覧 ・降水量グラフ一覧 3.ソースコード ソ...

過去の気象データ検索からのデータ取得

イメージ
1.概要 気象庁ホームページが最近、大幅なサイトリニューアルにより、色んな情報がビジュアル化されて分かりやすくなっています。従来の表示方法も気に入ってはいたのですが、 地図をベースとした利用者の地域に密着したものに改訂されています。気象や地震情報は日々の暮らしに欠かせないものです。また、過去の統計データなども、 防災や減災対策に役に立つものです。今回は、気象庁の公開データの 「過去の気象データ検索」 から日ごとの値を取得してグラフ化して見ます。 2.利用方法 Excel VBAマクロの 気象庁_気象情報自動取得.xlsm を起動します。 (1)取得期間をプルダウンで、開始年月と終了年月を設定します。       ※1ヶ月分のみの場合は、開始、終了共に同じ年月を設定します。 (2)実行ボタンをクリックします。 (3)取得データと共に6種類のグラフを描画して結果をブック形式で外部出力します。 気象庁の過去の気象データは、1976年から取得できますが、都道府県の気象台や観測所での観測開始時期が異なるので、 必ずしも、全国一律に取得(データ蓄積)できるかどうかは、未確認です。 3.ソースコード ソースコードは曜日(土、日)や日付の色分けと6つのグラフの描画部分などがあり、 標準モジュール : IEAuto は非常に冗長となっていますが、 全リストを掲載しています。データ取得は、 東京をデフォルトとして設定 していますので、他の都道府県の地域を指定する場合は、 下記の都道府県の prec_no と block_no の指定が必要となります。 気象台や観測所が都道府県によって複数ありますが、各都道府県の中の気象台を1つのみ選択して表に纏めたものです。 標準モジュール : IEAuto の 65行目と66行目をそれぞれ変更 して下さい。元々、他の地域のデータ取得を考慮していなかったので、 お手数ですが、該当ソースコード部分を直接変更して下さい。 都道府県 地域 prec_no block_no 01 : 北海道 北海道(釧路)-釧路 19 47418 02 : 青森県 青森県-青森 31 47575 03 : 岩手県 岩手県-盛岡 33 47584 04 : 宮城県 宮城県-...

TOP