Excel VBAでオブジェクト指向プログラミング(事前準備編)

2024-01-05

■Excel VBAは最強の開発ツール

Excel VBAは手軽に利用できて、あらゆるExcel操作をプログラムから実行できるうえ、オブジェクト指向プログラミングにも対応しているので、他のオブジェクトを呼び出すことにより、さまざまな処理を実現することができます。
このブログでは、私が個人的に作成したExcelのツールを順次紹介して行きますが、初回は事前準備に関する覚書です。

■オブジェクトの定義とインスタンスの生成

Excel VBAでオブジェクトを利用する手順は、ざっくり言うと以下の3ステップです。

①対象となるオブジェクトが含まれているライブラリを参照設定
②プログラムの宣言部でオブジェクト変数を定義
③プログラムの処理部でインスタンスを生成
FileSystemObject(FSO)を例にして、順に説明して行きます。

①ライブラリの参照設定
Visual Basic Editor(VBE)を起動し、ファイルメニューから[ツール]-[参照設定]を選択し、参照設定ダイアログで
Microsoft Scripting Runtimeのチェックボックスにチェックを入れ、[OK]ボタンを押下。

②オブジェクト変数の定義
プログラムの宣言部でオブジェクト変数を定義。
(データ型をFileSystemObjectとすることもできますが、汎用的なObjectで充分です)

  1. Dim fso As Object

③インスタンスの生成
プログラムの処理部でインスタンスを生成(オブジェクトを使い終ったら、忘れずに解放)。

  1. Set fso = New FileSystemObject
  2. 'ここにオブジェクトを使用した処理を記述
  3. Set fso = Nothing

(参考)「Set fso = New FileSystemObject」の部分を「Set fso = CreateObject(“Scripting.FileSystemObject")」と記述すれば、ステップ①(ライブラリの参照設定)は不要です。

オブジェクトブラウザによる調査方法

オブジェクトの使用方法を調べる場合、マニュアルやインターネット上の解説を参照するのが普通だと思いますが、①オブジェクトブラウザで概要を把握したうえ、②実際に動かしながら確認する、という方法が一番確実(マニュアル上の記載だけでは、具体的な追加方や実際の動作が今一つよくわからないので、試した方が早い)です。

①オブジェクトブラウザによる概要把握
Visual Basic Editor(VBE)を起動し、ファイルメニューから[表示]-[オブジェクト ブラウザ]を選択し、ライブラリで「Scripting」、クラスで「FileSystemObject」を選択。

右側の「’FileSystemObject’ のメンバ」の箇所にアイコンとメンバ名が表示されていますが、がクラス、がメソッド、がプロパティです。

例として「GetFolder」メソッドを選択すると、下部にGetFolderメソッドの引数と属性が表示されます。
この例では「Function GetFolder(FolderPath As String) As Folder」となっていますので、「文字列型のフォルダ名を引数としてメソッドを実行すると、Folderというオブジェクト型で結果が返って来る」ことがわかります。

引続き左側のクラスで「Folder」を選択すると、右側に「’Folder’ のメンバ」として、Folderオブジェクトのメソッドやプロパティが表示されます。

②プログラムを動かしながら動作を確認
FileSystemObjectを生成し、GetFolderメソッドを実行した次のステップにブレークポイントを設定し、プログラムを実行。

  1. Dim fso As Object
  2. Dim folder As Object
  3. Private Sub Sample1()
  4.     Set fso = New FileSystemObject
  5.     Set folder = fso.GetFolder(“c:\work")
  6.     Set folder = Nothing 'ここにブレークポイントを設定
  7.     Set fso = Nothing
  8. End Sub

プログラムが停止したところで、[表示]-[イミディエイト ウィンドウ]を開けば、メソッドを実行したり、プロパティを参照したりして、オブジェクトの動作を確認することができます。
下図の例は、FolderオブジェクトのDriveプロパティ、Nameプロパティ、Pathプロパティの内容を表示してみたものです。

国本温子(著),緑川吉行(著),できるシリーズ編集部(著)
出版社:インプレス
発売日:2022/3/23
単行本(ソフトカバー):A5判/912ページ

大村あつし(著),古川順平(著)
出版社:技術評論社
発売日:2021/1/9
単行本(ソフトカバー):A5判/800ページ

高橋宣成(著)
出版社:技術評論社
発売日:2019/11/25
単行本(ソフトカバー):B5変形判/576ページ