素人がExcelVBAによる「一人働き方改革」に挑むブログスマートフォン用の表示で見る素人がExcelVBAによる「一人働き方改革」に挑むブログExcelVBAネタです。VBA一般Object型変数を積極的に使う今まで、Object型の変数を積極的に使うことはなかった。VBAで作成したツール類も、内輪で使うものばかりなので、CreateObjectを自分から使うことはまずなかった。参照設定してNewばっかりだった。今回、Object型変数を使ったら便利だな、と思った場面があったので紹介する。Sheet1オブジェクトにPropertyとメソッドを設定するシートモジュールにPropertyを設定してみる。今回は、シートの基準位置を示すセルを、シートオブジェクトのPropertyにする。Propertyたったこれだけの単純なコード。A1セルを、Sheet1オブジェクトの基準セルを表すBaseCellプロパティに設定している。次に、Sheet1オブジェクトにメソッドを設定する。Subご覧のとおり、MsgBoxを使って、先ほど設定したBaseCellプロパティを参照して得られるRangeオブジェクト(すなわちSheet1オブジェクトのA1セル)の値を表示するだけのメソッド。次のコードで早速使ってみる。SubSheet1オブジェクトのshowBaseCellValueメソッドを呼び出す。Sheet1オブジェクトのshowBaseCellValueメソッド内部でBaseCellValueプロパティを参照し、A1セルが返るので、A1セルのValueプロパティの値(すなわち「ち~んw」)がメッセージボックスに表示されたわけだ。Sheet2オブジェクトにもPropertyとメソッドを設定する同じように、Sheet2オブジェクトにも似たようなPropertyとメソッドを設定してみる。今度は、このように、基準セルをB2にする。Subもはや多言は要すまい。BaseCellプロパティが指し示すセルの位置がB2に変わっただけだ。使ってみる今度は、上記のリスト3を次のように変更する。SubSheet1オブジェクトに対する操作の部分をコメントアウトして、Sheet2オブジェクトのshowBaseCellValueメソッドを呼ぶコードにした。