VBA03_オブジェクトとプロパティ

こんにちは!Benです。今日も一日お疲れ様です。

今日もVBAの続きですが、前回の予告通りある程度しっかりとした書き方でセルに値を入力したいと思います。前回の単にCells(1,1)="答え"とかだと何が問題なのでしょうか。

それは、ブックやシートの指定がないので、どこに入力されるかわからないことです。違うブックやシートで作業している状態で、今のプログラムを実行すると別の大事な情報が上書きされることになります そこで今日はブックとシートのオブジェクトについて復習します。

20151027_VBA1.png

まずはワークブックです。複数の開いているワークブックが図のようにあって、それぞれがWorkbookオブジェクトです。これらを複数形でまとめた言い方がWorkbooksコレクションです。趣味でキャラクターものとかあるメているコレクションと同じように、同種の集まりという感じです。

20151027_VBA2.png

同じようにワークシートもWorksheetオブジェクトが集まってWorksheetsコレクションになります。ブックも一緒ですが、シートを指定するときはコレクションの中から名前で指定するやり方がわかりやすいです。具体的に言うとSheet1を指定するときはWorksheets("Sheet2")という感じです。

20151027_VBA3.png

では実際にブックからはっきりと指定してセルの入力をしてみましょう。まずはワークブックの指定です。ファイル名(シート名も同じ)は文字列扱いなのでダブルクォーテーションで囲います。Book1.xlsと拡張子まで記述します。Book1.xlsのSheet2を指定しますが、『の』に当たるのはドットです。シート名を指定したら次はセルの指定です。今回はRangeというプロパティを使用しました。これはA1とかいつも使っているセル表記で指定できます。最後にA1の何か?ということで値というプロパティであるValueを入力します。

ざっくりいえば、WorkbookやWorksheetはいわゆるモノなのでオブジェクト、RangeやValueはモノの設定なのでプロパティです。つまりモノの設定=○○の構図です。

これらの指定をすると、複数のブックを開いても、違うシートをアクティブにしてもちゃんと指定の場所に入力されます。たとえばSheet1をアクティブにして実行しても、そのときは見た目何も変わりませんが、Sheet2を開くとちゃんとA1セルに25が入力されています。

これらの指定の方法はさまざまありますが、今日はこの辺で鉛筆を置きたいと思います。さて、ご飯でも作ろうかな

この記事へのコメント


この記事へのトラックバック