ExcelやVBAを深く知るためのVBEの使い方

Excelというのは表データに対して値や計算式その他の設定を施していくプログラムなのですが、その設定はすべてプロパティという形でExcelのファイルに記憶されています。
そのプロパティをいちいち人間が一つ一つを見つけて設定変更していくのではなくて、人間的にわかりやすい操作をすればその設定をExcelはやってくれる、というものです。
その設定の流れは、マクロの記録機能で記録されたVBAを見てみるとわかります。
そのプロパティを知ることでVBAではどんなことをしているのか、Excelは何をして何をするためのソフトウェアなのかを知ることができ、それを知ることでよりExcelを高度に使いこなすことができるかもしれません。
それを研究するための足がかりとなるために、VBEを使ったプロパティの扱い方を紹介します。

VBEのプロジェクトとプロパティ

VBEを起動すると左側にプロジェクトとプロパティがあります。

プロジェクト

プロジェクトにはVBAProjectがあり、これは1つのブックを一塊としたものです。その中にMicrosoft Excel Objectsがあり、その中にシートとブックがあります。
2つブックを開けばVBAProjectは2つ表示されます。
3つシートがあるブックのVBAProjectのMicrosoft Excel Objectsにはシートが3つ表示されます。

プロパティ

プロジェクトの中のどれかをクリックすると、プロパティに、それに対する設定が表示されます。

ブックのプロパティ

例えば、プロジェクトの中のThisWorkbookをクリックするとプロパティにThisWorkbookの設定が表示されます。

下の方にスクロールすると「Saved」というプロパティがあります。これはブックが保存済みかどうかを表すもので、上書き保存をするとTrueになり、そのあとセルに何かを書き込むとFalseになります。おそらくExcelはファイルを閉じるときにこのプロパティを参照してFalseの未保存の場合は保存するかどうかのメッセージを出すようにしているのでしょう。
Date1904のプロパティは、オプションで設定できる1904年から計算するという設定で、1904年2月29日は暦上存在しないのですが、Excelの初期設定では存在しているように計算してしまいます(詳細はWikipedia)。それによって日付の計算が1日ずれてしまいます。そこで影響が出ないように日付シリアル値の0を1904年の1月1日にするのがこの設定です。標準ではFalseになっているプロパティをTrueにすることで1904年からの計算になります。

シートのプロパティ

シートのオブジェクトをクリックすればシートのプロパティが表示されます。

シートのプロパティにはDisplayPageBreakというプロパティがあり、ページのサイズや余白などの設定をするとシートに改ページの点線が表示されますが、その設定をしているのがこのプロパティです。このプロパティは初期状態ではFalseでページ設定をするとTrueになります。手動でFalseに変更すると改ページの点線の表示は消えます。
シートのプロパティのNameを変更すればシート名が変更されます。 (オブジェクト名)のプロパティではシートをVBAで指定する時のオブジェクト名を指定することができます。オブジェクト名は指定したそのものを指定できます。シート名に「売上」、オブジェクト名に「S1」と設定している状態では、S1.Nameで「売上」と表示します。また、S1とSheets(“売上”)は全く同じものを指します。

まとめ

このようにオブジェクトに対するプロパティを参照することも手動で設定することもできます。もう一段階進んだ操作方法はVBEのイミディエイトウィンドウで操作するオブジェクトに対して操作であるメソッドを行うという指定をするということでもExcelを操作することができます。
Excelはそのイミディエイトウィンドウで指定するものをリボンや右クリックしたときのメニューから操作できるようにしたものということができるでしょう。
VBAでプロパティを操作するものを作るということはExcelの操作自体を作るということにもなります。Excelの標準機能の9割はVBAで作成することができるでしょう。また、改ページの点線を消すということはExcelの標準機能ではできないのですがVBAでプロパティを操作すれば可能になるので標準機能以上のことがVBAでできるのです。
このように理解すればVBAは何のために作成するもので、何を指定しているかが分かりやすくなると思います。

コメント

タイトルとURLをコピーしました