こんにちは。ECF Tech担当
Michiharu.Tです。
Excel VBA入門の第2回です。
今回はExcelマクロの基本やセルに対する操作を色々ご紹介できればと思います。「どうしてこう書くとこう動くの?」という部分もあるかもしれませんが、まずはプログラムでExcelが操作できていることを実感してみてください。
2-1 セルに値を設定する
では早速、実際にプログラムを作成するところから始めましょう。説明は新規に空のExcelファイルを1つ開いていることを前提にしています。
第1回の時と同様、次の手順でVBE(Visual Basic Editor)を開きます(以下、エディタと記述します)。
1.「開発」タブを選択し、「Visual Basic」のアイコンをクリックします。
2.「挿入」タブから「標準モジュール」をクリックします。
)
エディタが開いたら、次のようにプログラムを入力してみましょう。
下記のプログラムをコピーして貼り付けても構いません。
Sub マクロ1() Range("A1").Value = "月" Range("A2").Value = "火" Range("A3").Value = "水" Range("A4").Value = "木" Range("A5").Value = "金" End Sub
プログラムが書けたら、一旦エディタを閉じます。今回は前回とは別の方法でマクロを実行してみたいと思います。
「開発」タブから「マクロ」を選択します。
マクロ1が選択されていることを確認し、「実行」をクリックします。
下図のようにA列に値が設定されていれば、プログラムの実行は成功です。
2-1-1 標準モジュールとマクロ
プログラムが動作したところで、Excelマクロの基本についていくつか説明したいと思います。
まずはプログラムを作成する際に必ず挿入している「標準モジュール」ですが、こちらは一旦「プログラムをまとめて書いておくもの」という理解でOKです。下のように標準モジュールの中に、Excelマクロをいくつも書いていくイメージになります。
次にExcelマクロですが、下図の赤囲みの部分が1つのマクロとなります。
マクロの書き方は次のようになります。
Sub マクロ名() 'ここに何かしらの処理を書く End Sub
Sub
とEnd Sub
の間にプログラムを書いていく形です。「Sub」は「Sub Procedure(サブプロシージャ)」の略です。サブプロシージャはマクロの別の呼び方。というくらいの理解でOKです。
1つのマクロには、いくつもの「命令」を書くことができます。「命令」とは、コンピュータに実行してほしい指示のことです。実際に書かれている命令は次の5つです。
Range("A1").Value = "月" Range("A2").Value = "火" Range("A3").Value = "水" Range("A4").Value = "木" Range("A5").Value = "金"
これらの命令を日本語で説明すると
- A1セルに「月」を設定する。
- A2セルに「火」を設定する。
- A3セルに「水」を設定する。
- A4セルに「木」を設定する。
- A5セルに「金」を設定する。
となります。最初の命令であるRange("A1").Value = "月"
を例に、命令文を分解すると概ね次のような意味となります。
より詳しい文法は、また後のタイミングで説明いたします。
2-2 セルの背景色を設定する
次にセルの背景色を変更するマクロを作成してみましょう。下図のようにマクロ1の下に作成してみましょう。
下記のプログラムをコピーして貼り付けても構いません。
Sub マクロ2() Range("A1").Interior.Color = RGB(255, 255, 0) End Sub
できたら、再度「開発」タブから「マクロ」を選択します。
2つのマクロが選択できるようになっていると思いますので「マクロ2」を選んで「実行」をクリックします。
下のようにA1セルの色が変わっていれば成功です。
こちらも命令文を分解した意味を載せておきたいと思います。
RGB(255,255,0)
は色を表現しています。赤(Red)・緑(Green)・青(Blue)を光の三原色と呼びます。コンピュータではこの3つの色の発光度合い(0~255で表現)で色を表現しています。(255,255,0)
の部分は、それぞれ赤・緑・青の発色具合を表しており、赤と緑が最大に発光している場合は黄色になります。2-3 特定のセルを削除する
次に特定のセルを削除するマクロを作成します。マクロ2の下に続けて書いてみましょう。
Sub マクロ3() Range("A3").Delete Shift:=xlUp End Sub
実行するとA3のセルが削除され、下のセルが上方向に移動します。
こちらも命令文を分解して、意味を載せておきたいと思います。
2-4 命令文の基本形
ここまで、いくつかのプログラム例をご紹介いたしましたが、その中で登場した命令文には共通の形があります。本節では、その共通の形と関連する用語についてご紹介したいと思います。
オブジェクトとプロパティ
命令文を読み解く際に理解しておきたいのが、オブジェクトとプロパティです。それぞれを簡単に説明します。
オブジェクト
「オブジェクト」は、操作対象となるモノのことです。Excelにおけるワークシート、セル、ブック、セル範囲などは「オブジェクト」です。「オブジェクト(Object)」は英語で、「モノ」や「対象」といったとてもあいまいで意味の広い言葉です。
プロパティ
「プロパティ」は、オブジェクトの持つ「情報」や「状態」を指す言葉です。たとえばExcelの1つのセルが持つプロパティには、「値」「背景色」「文字色」などの情報があります。
オブジェクトとプロパティに注目して、セルに値を設定する命令を再度見てみると、下図のように見ることができます。
青色で囲んだRange("A1")
はA1セルというオブジェクトを表しており、緑色で囲んだValue
はA1セルの持つプロパティです。プロパティに値を設定する方法の1つに、図に示すような= 値
と書く方法があります。値部分は"月"
となっています。また、.
は「の」と訳してあげるとわかりやすくなります。
簡単にまとめると命令文の1つのパターンは、「オブジェクトのプロパティをどうする」と書く方法です。
今回であれば「A1セル の 値 を "月" に設定する」です。
メソッド
次にメソッドについてです。メソッドを知ることで、もう1つの命令文の形が見えてきます。「メソッド」はオブジェクトに対して行うことのできる「操作」や「命令」のことです。
オブジェクトとメソッドに注目してセルを削除する命令を再度見てみると、下図のように見ることができます。
Delete
がメソッドです。「削除する」という操作を表しています。Shift: = xlUp
の部分は「上にずらす」という意味を持つ付加情報です。この部分の文法は様々なので一旦割愛します。メソッドごとに追加情報がつけられる。と考えておいてください。
こちらも文法パターンとしてまとめると、「オブジェクトをどうする」という書き方がもう1つの命令文の基本形です。メソッドごとに追加できる情報もありますが、一旦はこのように覚えておきましょう。
ここまでご紹介したオブジェクト、プロパティ、メソッドには数多くの書き方があります。これらは、インターネットなどで調べながら少しずつ学んでいけばOKです。事前に覚える必要はありません。
というわけで本日はここまでとさせて頂きたいと思います。最後までお読み頂き、ありがとうございました。次回も様々なプログラムをご紹介したいと思います。ひきつづき、よろしくお願いいたします。