トップページ

#1_1 VBAの構文


オブジェクトについて詳しくなろう

この第1章からはいよいよVBAの知識・使い方に入っていきます。まずはマクロの時と同様に、大切な基礎知識や言葉の定義から入りたいと思います。

第一歩として「オブジェクト」の定義から入ります。マクロの時は「オブジェクト=モジュールの集まり」でしたが、VBAでは「オブジェクト=Excelの構成部品」になります。まぁ両方とも何かの集まりですし、結局モジュールの中にExcelのシートやブックなどのExcel構成部品も入るため、あまり言葉の定義は気にしなくて大丈夫です!

Excelは何かを実現するための「アプリケーション」です。その「アプリケーション」を構成する「ブック」「シート」などをExcelの構成部品「オブジェクト」と呼ぶのです。

プロパティとは何か

オブジェクトを語る上で避けて通れないのが「プロパティ」です。オブジェクトのすべてと言っても過言ではないです。なぜなら「オブジェクトの性質=プロパティ」だからです。

身近な例で言えば、私たち人間がオブジェクトです。私たちには「身長」「体重」「性別」などの性質があります。いわばそれらが私たちのプロパティです。

Excelのオブジェクト(ブックやシート)にも下のように様々な特徴があります。VBAでマクロを作ることにより、これらのプロパティの値を取得したり、変更したりすることが可能です。

プロパティの値を取得する

プロパティ操作の基本となる「取得」について説明します。この場合の取得とは、あるオブジェクトの持つあるプロパティを任意の変数に格納するという頃です。その文法は以下のようになります。

実際のExcelオブジェクトを用いた例を一つ紹介しましょう。多くの教科書で紹介される例ですが、特定のシートの名前を取得するというステートメントです。取得した名前は変数myNameに格納されています。

ちなみにWorksheet(1)の1は「1番左にあるワークシート」を意味するオブジェクトです。

プロパティ値を変更する

プロパティの値を取得する方法を学んだ後は、プロパティを変更する構文を紹介します。

その基本構文は以下のようになります。

取得の時と同じく「=」で繋ぐことにより、右辺の値を左辺に代入するというプログラミングの基本文法により成立しています。

例えばこのステートメントを実行すれば、1番左のワークシートの名前が「会員名簿」に変更されます。

メソッドを使ってオブジェクトを操作しよう

オブジェクトの性質である「プロパティ」についてはざっと理解できたと思います。今度はこのオブジェクトを操作する「メソッド」を紹介します。

このメソッドを使えば、例えば「シートを開く」「シートを削除する」などといった操作が可能になります。

早速Deleteメソッドを用いてシートを削除する例を見ていきましょう。

これを実行すれば一番左のワークシートを削除できます。

(応用)細かい指示を与えるメソッド

上記の例の「シートを削除する」という動作は、「オブジェクトを」「メソッドする」という主語+述語で構成されていました。つまり修飾語「どのように」という部分がありませんでした。

このような細かい指示をメソッドに与えるときは、メソッドに「引数(ひきすう)」を与えることで実現できます。

例えば、「3番目のワークシートの左に新しいシートを追加する」というステートメントは以下のようになります。