【初心者向け】動かして学ぶExcel VBA入門(2)

Excel VBA

こんにちは。ECF Tech担当
Michiharu.Tです。

Excel VBA入門の第2回です。

今回はExcelマクロの基本やセルに対する操作を色々ご紹介できればと思います。「どうしてこう書くとこう動くの?」という部分もあるかもしれませんが、まずはプログラムでExcelが操作できていることを実感してみてください。

2-1 セルに値を設定する

では早速、実際にプログラムを作成するところから始めましょう。説明は新規に空のExcelファイルを1つ開いていることを前提にしています。

第1回の時と同様、次の手順でVBE(Visual Basic Editor)を開きます(以下、エディタと記述します)。

1.「開発」タブを選択し、「Visual Basic」のアイコンをクリックします。

VBA開始01

2.「挿入」タブから「標準モジュール」をクリックします。

VBA開始04)

エディタが開いたら、次のようにプログラムを入力してみましょう。

VBAマクロ01

下記のプログラムをコピーして貼り付けても構いません。

Sub マクロ1()
    Range("A1").Value = "月"
    Range("A2").Value = "火"
    Range("A3").Value = "水"
    Range("A4").Value = "木"
    Range("A5").Value = "金"
End Sub

プログラムが書けたら、一旦エディタを閉じます。今回は前回とは別の方法でマクロを実行してみたいと思います。

「開発」タブから「マクロ」を選択します。

VBAマクロ02

マクロ1が選択されていることを確認し、「実行」をクリックします。

VBAマクロ03

下図のようにA列に値が設定されていれば、プログラムの実行は成功です。

VBAマクロ04

2-1-1 標準モジュールとマクロ

プログラムが動作したところで、Excelマクロの基本についていくつか説明したいと思います。

まずはプログラムを作成する際に必ず挿入している「標準モジュール」ですが、こちらは一旦「プログラムをまとめて書いておくもの」という理解でOKです。下のように標準モジュールの中に、Excelマクロをいくつも書いていくイメージになります。

モジュールとマクロ

次にExcelマクロですが、下図の赤囲みの部分が1つのマクロとなります。

VBAマクロ05

マクロの書き方は次のようになります。

Sub マクロ名()
    'ここに何かしらの処理を書く
End Sub

SubEnd 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 = "月"を例に、命令文を分解すると概ね次のような意味となります。

命令文説明01

より詳しい文法は、また後のタイミングで説明いたします。

2-2 セルの背景色を設定する

次にセルの背景色を変更するマクロを作成してみましょう。下図のようにマクロ1の下に作成してみましょう。

2つのマクロ

下記のプログラムをコピーして貼り付けても構いません。

Sub マクロ2()
    Range("A1").Interior.Color = RGB(255, 255, 0)
End Sub

できたら、再度「開発」タブから「マクロ」を選択します。

VBAマクロ02

2つのマクロが選択できるようになっていると思いますので「マクロ2」を選んで「実行」をクリックします。

マクロ2実行

下のようにA1セルの色が変わっていれば成功です。

マクロ2結果

こちらも命令文を分解した意味を載せておきたいと思います。

命令文説明02

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のセルが削除され、下のセルが上方向に移動します。

シフトする

こちらも命令文を分解して、意味を載せておきたいと思います。

命令文説明03

2-4 命令文の基本形

ここまで、いくつかのプログラム例をご紹介いたしましたが、その中で登場した命令文には共通の形があります。本節では、その共通の形と関連する用語についてご紹介したいと思います。

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

命令文を読み解く際に理解しておきたいのが、オブジェクトプロパティです。それぞれを簡単に説明します。

オブジェクト

「オブジェクト」は、操作対象となるモノのことです。Excelにおけるワークシートセルブックセル範囲などは「オブジェクト」です。「オブジェクト(Object)」は英語で、「モノ」や「対象」といったとてもあいまいで意味の広い言葉です。

プロパティ

「プロパティ」は、オブジェクトの持つ「情報」や「状態」を指す言葉です。たとえばExcelの1つのセルが持つプロパティには、「値」「背景色」「文字色」などの情報があります。

オブジェクトとプロパティに注目して、セルに値を設定する命令を再度見てみると、下図のように見ることができます。

オブジェクト

青色で囲んだRange("A1")A1セルというオブジェクトを表しており、緑色で囲んだValueA1セルの持つプロパティです。プロパティに値を設定する方法の1つに、図に示すような= 値と書く方法があります。値部分は"月"となっています。また、.は「」と訳してあげるとわかりやすくなります。

簡単にまとめると命令文の1つのパターンは、「オブジェクトのプロパティをどうする」と書く方法です。

今回であれば「A1セル"月" に設定する」です。

メソッド

次にメソッドについてです。メソッドを知ることで、もう1つの命令文の形が見えてきます。「メソッド」はオブジェクトに対して行うことのできる「操作」や「命令」のことです。

オブジェクトとメソッドに注目してセルを削除する命令を再度見てみると、下図のように見ることができます。

メソッド

Deleteがメソッドです。「削除する」という操作を表しています。Shift: = xlUpの部分は「上にずらす」という意味を持つ付加情報です。この部分の文法は様々なので一旦割愛します。メソッドごとに追加情報がつけられる。と考えておいてください。

こちらも文法パターンとしてまとめると、「オブジェクトをどうする」という書き方がもう1つの命令文の基本形です。メソッドごとに追加できる情報もありますが、一旦はこのように覚えておきましょう。

ここまでご紹介したオブジェクトプロパティメソッドには数多くの書き方があります。これらは、インターネットなどで調べながら少しずつ学んでいけばOKです。事前に覚える必要はありません。

というわけで本日はここまでとさせて頂きたいと思います。最後までお読み頂き、ありがとうございました。次回も様々なプログラムをご紹介したいと思います。ひきつづき、よろしくお願いいたします。

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