Step2 基礎

【STEP2 基礎4】はじめてのVBAプログラム

はじめてのVBAプログラム

それでは、VBAを使ったプログラミングをしてみましょう。
ここからはVBAで書いたプログラムのことを「マクロ」と呼ぶことにします。

簡単なマクロを作って実際に動作させて、
VBAを使ったマクロの作り方、動かし方の基礎の基礎を学びましょう。

標準モジュールの作成

はじめに、マクロを書く場所として標準モジュールを作成します。

挿入→標準モジュール

で作成できます。


標準モジュール以外に、シートモジュール、クラスモジュールというものもあるのですが、
混乱すると思うので、まずは「標準モジュールを作ってマクロを書く」ということだけを覚えてください。

標準モジュールを作成すると、プロジェクトエクスプローラーの中に、標準モジュールというフォルダが作成されます。
そして、作成された標準モジュールの下にあるModule1をダブルクリック。
ウィンドウのタイトルバーが標準モジュールの名前になっていることを確認しましょう。

ちなみに、このコードウィンドウは、個別ウィンドウ状態か最大化状態で開くことができます。
個別にウィンドウがいくつもあると、非常に分かりにくくなるので、
ウィンドウを最大化で開いて作業しましょう。
(なぜ、分かりにくいかは使っていると理解できるようになります)

マクロを書いてみる

それでは、マクロを書く準備をしていきましょう。

まず初めに、Sub」と入力して、半角スペース、そしてマクロ名(プロシージャ名)を入力しましょう。
ここでは「test1」としておきます。

Sub test1

この状態でEnterを押してみてください。

自動的に()が追加され、1行空いて、「End Sub」という文字が追加されました。

マクロは、SubEnd Subの間の行に書いていきます。

ちなみにSubは、Subプロシージャと呼ばれています。

先ほどマクロ名と書いた箇所は、プロシージャ名と呼ばれているのですが、
更にわかりにくくなるので、ここではあえてマクロ名としています。

SubEnd Subで囲まれた行を一塊のプログラムとして上から実行します。

では、マクロを書いて実行してみます。

まずは1行書いてみましょう。
今までイミディエイトウィンドウで書いていたそのままの書き方でOKです。
(画面では見やすいように行を空けていますが、空行は実行されないため、あってもなくてもOKです)

Sub test1()

    Range("A1").Value = 100

End Sub

書き終わったら、SubEnd Subのどこかをクリックしてカーソルを置いて下さい。

マクロを実行する時のカーソルの位置に注意しましょう。
カーソルの位置がSub~End Subの中にないと、エラーが発生して実行できません。

さて実行してみます。

*実行ボタン
*F5
*メニューから実行(R)→Sub/ユーザーフォームの実行F5

どれでもOKです。
実行してみてください。

実行すると、A1セルに100が書き込まれます。

複数行のマクロを実行する

それでは次に複数行の実行です。
新たにtest2という名前で新たにSubプロシージャを作りましょう。

この状態でEnterを押しましょう。

そして、test2の中にプログラムを書きます。

Sub test2()

    Range("A2").Value = 200

    Range("A3").Value = 300

End Sub

先ほどと同様に、カーソルをSub test2End Subの行の中にクリックして置いて下さい。
実行すると、A2セルに200が、A3セルに300が書き込まれます。
つまりtest2では、2行のプログラムが順番に実行されたということです。

今、test1,test2と2つのマクロができました。
それぞれが別のマクロになります。
このように、Sub〜End Subで囲んで、いくつもマクロを作っていくことができるのです。

さて、初めてのマクロはいかがだったでしょうか?
step1のイミディエイトウィンドウの中で、書いていた処理をそのまま実行することができますので、いろいろと試してみてください。