【Excel VBA入門】オブジェクトとは|エクセル マクロ

文法編

ここではオブジェクトについてまとめました。

VBAの文法を学ぶ上でも大切な内容ですので、ここで一通り確認しておきましょう。

オブジェクトとは

オブジェクトとは操作の対象になるモノのことです。
具体的には、セル、シート、Excelファイル、Excel自体があります。

オブジェクトはこういった階層で構成されています。

オブジェクト名意味
Applicationアプリケーション(Excel自体)
Workbookワークブック(Excelファイル)
Worksheetワークシート
Rangeセル

VBAでは操作の対象となるモノを指示した上で、動作を記述します。
そのため、まずは”何を”動かしたいかを明記する必要があります。

オブジェクトとは|具体的な使い方

「考え方はなんとなくわかったけど、実際に使うイメージがわかない。」
私が初めて学習を始めたときはこのような状態でした。

概念ではわかりにくいと思いますので、具体的な例をつかってご紹介いたします。

セルA1」を指定したいとき

コードの内容は次の通りです。

    Range("A1")

これで目的どおりの値を取得できます。

しかし、複数のシートがあった場合はどうでしょうか?

「Sheet2」でマクロ実行したいのに、「Sheet1」にボタンを設置した場合とかですね。
マクロ実行をしたときに開いているシートでプログラミングが実行されますので、このままでは「Sheet1」でマクロが実行されてしまいます。

Sheet1」の「セルA1」を指定したいとき

こういった場合は、このような書き方をします。

    Worksheets("Sheet1").Range("A1")
'もしくは
    Sheets("Sheet1").Range("A1")

これで目的のセルを指示することができます。

実はもう1種類、シート番号をつかってシートを指示することもできます。
「左から数えて何番目のシート」といった指示の方法ですが、シート挿入があると思わぬ動作につながるデメリットがありますので、こだわりがなければシート名を直接書くことをオススメします。

同じような考え方で「Workbook」を指定することもできます。
この場合はExcelのファイル名を指定する形になります。

ファイル名「test.xlsx」の「Sheet1」の「セルA1」を指定したいとき

    Workbooks("test.xlsx").Sheets("Sheet1").Range("A1")

今の段階では、いちばん大きな階層の「Application」については使用頻度が低いため扱いません。
まずはセルとワークシートが記述できるようになれば問題ないです。

まとめ

今回はオブジェクトに関してのご説明を致しました。

プログラミングを書く上で必ず扱う内容ではありますが、「覚える!」といった感覚ではなく、「いつの間にか慣れてしまっている!」といった感じの習得になるかと思います。

あまり深く考えなくてもコードの記述を繰り返すうちになんとなくわかってくるはずです。

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