Chapter 2 Hello world!

イントロダクション コース

テーマ

 本稿のテーマは、「 セルに文字を表示する 」です。

 簡単なマクロを作成して、セルに文字を表示する方法を学習します。本稿を修了すると、シート上の好きなセルに文字を表示させるマクロを作成出来るようになります。

VBA Project を作る

 早速、VBA の学習に入りましょう。Excel を起動して「空白のブック」を選択し、「開発」タブから VBE を起動します。VBE が起動したらプロジェクトエクスプローラーにある Sheet1 をダブルクリックしてください。

 左の画像を見てください。

 Windows のエクスプローラーのような画面が表示されていると思います。このペインをプロジェクトエクスプローラーと呼びます。

 一番上の階層に「プロジェクト」があり、その下に「 Microsoft Excel Objects 」というフォルダ。その中に「 Sheet1 」、「 ThisWorkbook 」があります。

 Sheet1 や ThisWorkbook などのオブジェクトをダブルクリックすることで、右側のペインにその中身を表示させることが出来ます。

 以下、それぞれの簡単な説明です。

VBAProject : VBA はプロジェクトという単位で管理します。このプロジェクトにソースコード用ファイルを追加していき、それぞれに必要なプログラムを記述していきます。現時点では一つのエクセルファイルに一つのプロジェクトがあると考えてください。

Sheet1 : これは皆さんが良くご存知のエクセルシートを指しています。ただし、VBE で表示されるのはそのシートに対するコードです。今は Excel ファイルを作成したばかりなので何もコードが書かれていない状態となっています。これを「シートモジュール」と呼びます。Excel シート1枚に対してシートモジュールは一つ存在します。

ThisWorkbook : こちらは「ブックモジュール」と呼ばれるもので、ThisWorkbook はこの Excel ブックのことを示しています。こちらはブックに対するコードですが、ファイルを作成したばかりなので何も書かれていません。シートモジュールと同様、ブック一冊につきブックモジュールは一つ存在しています。

Hello world!

 プログラミングの学習では、最初に Hello world! という文字を画面に表示させることが伝統になっています。私もその伝統に則ってこれを最初のプログラミング例としたいと思います。

 プロジェクトエクスプローラーの Sheet1 をダブルクリックすると、右側のペインに Sheet1 シートモジュールの内容が表示されます。現在は空白です。ここに以下のように入力してください。

Public Sub HelloWorld()
    Me.Cells(1, 1).Value = "Hello world!"
End Sub

 Excel の画面に戻り、「開発」タブの「マクロ」をクリックしてください。マクロの一覧にSheet1.HelloWorld が表示されていますので、それを選択して右側にある「実行」ボタンをクリックします。

 どうでしょうか? Sheet1 の A1 セルに Hello world! と表示されれば成功です!出来ましたか?

 続いてコードの意味を説明します。冒頭の Public Sub という部分は記述したマクロをマクロ一覧に表示させるために必要なコードです。その右にある HelloWorldマクロの名前、その後に続く () はマクロ名のあとに必ず書く決まりとなっています。そして最後の行にある End Sub とは、マクロの終了を意味しています。

コードの読み方

 マクロを作成する際は、Public Sub で始まり、その後にマクロの名前、続いて () を記述し、最後に行を変えて End Sub と書きます。これがマクロの定義となり、そのマクロで実行する内容はその間に記述する決まりとなっています。さて、マクロの実行内容が記述された部分についても説明します。

Me は自分自身を指しています。このコードを記述したモジュールは Sheet1 シートモジュールですので、Me は Sheet1 を意味しています。

Cells はシートにある全てのセルを意味しています。

(1, 1) の部分は、セルのアドレスを意味しており、1行目、1列目を指定していることになります。つまり、A1 セルを意味しています。

Value は、値を意味しています。

 続けて読むときは左から読んでいき、「.」(ドット)を「の」に読み替えながら読みます。このコードの左辺は、「 Sheet1 の 全てのセル の 1行目1列目のセル の 値」という意味になります。

「 = 」 は代入を意味しており、その右側にある Hello world! という文字列を代入することを示しています。ここで文字列 Hello World! は、「”」ダブルクォーテーションに囲まれています。これも VBA のルールとして決まっていることで、文字列として表現したいときには必ず「”」で囲う決まりとなっています。

「Sheet1 の全てのセルのうち 1行目1列目のセルの値に、Hello world! を代入する」

 これがこのコードの動作です。このコードの意味さえ理解出来れば、シート上の好きなセルに任意の文字を表示させることが出来るようになったということです。意外と簡単ですよね。Hello world! だけではつまらないので、別のセルに任意の文字を表示させるマクロを作ってみましょう。先ほど作った Hello world! のコードから、行番号、列番号、表示したい文字、それぞれを変更するだけで実現出来ます。(行と列の順番を間違えないように注意してください

 以下は例です。ここでは、B2 セルに「ひな祭り」、D3 セルに「プーチン怖い」、F4 セルに「昨晩の夕飯はうな重でした。とても美味しかったです!」という文章を表示させます。マクロ名は    「 Chapter2_1 」とします。

Public Sub Chapter2()

    Me.Cells(2, 2).Value = "ひな祭り"
    Me.Cells(3, 4).Value = "プーチン怖い"
    Me.Cells(4, 6).Value = "昨晩の夕飯はうな重でした。とても美味しかったです!"
    
End Sub

 皆さんも色々と書いてみてください。そして書いたマクロを実行し、結果を確認してみましょう。

 それでは本稿はここで終わります。また次回お会いしましょう。

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