【2】VBAを入力して、プログラムを実行してみよう

記事で紹介しているエクセル
・エクセル2019 [64ビット版]

目次

エクセルをマクロ有効ブック形式で保存しよう

エクセルでVBAを使うには、「マクロ有効ブック」形式で保存する必要があります。

エクセルの上部に、「画像1」のようにファイル名があると思います。

そのファイル名の最後が「.xlsx」になっていると思います。
 ※ファイルをまだ保存してなければ「Book1」と表示されています

このままだとプログラムを実行する事ができません。

よって、VBAが実行可能な形式に変更します。

まだファイルを保存してない場合も、同じ手順で実行可能な形式で保存します。

画像1

エクセルのタブから「ファイル」を選択します。

画像2

左メニューの「名前を付けて保存」を選択します。

画像3

保存する場所はどこでも構いませんが、とりあえず現在保存されているエクセルと同じ場所に保存します。

画像4

保存用のウインドウが表示されます。

「画像5」にあるファイル名の横の下向き矢印のアイコンを選択します。

すると「ファイルの種類」から一覧が表示されます。

この中の「Excel マクロ有効ブック(*.xlsm)」を選択します。

画像5

するとファイル名の横が「画像6」のように「.xlsm」に変わりました。
 ※ファイル名の最後に付く「.***」を拡張子といいます

変わったのを確認したら「保存」を選択します。

画像6

これでVBAを実行できる形式で保存できました。

エクセルを開く際、「セキュリティの警告 マクロが無効にされました」というメッセージが表示されます。

こちらは「コンテンツの有効化」を選択する事で、VBAを実行する事ができます。

画像6-2

VBAのコードを入力してみよう

VBAが実行できる形式に保存できたら、いよいよプログラムを書いてみます。

モジュールを追加する

「開発」タブから「コードの表示」を選択します。

画像7

すると別ウインドウが表示されます。

これは「VBE(Visual Basic Editor)」と呼ばれるVBAの統合開発環境です。

統合開発環境は「IDE(Integrated Development Environment)」とも呼ばれ、プログラミング開発する上で、様々な役立つ機能が含まれています。

この画面からプログラムを記述します。

画像8

まずプログラムを書く前に「モジュール」を追加します。

とりあえずは、プログラムを書く場所、という理解で大丈夫です。

「画像9」のように、「プロジェクト – VBAProject」の子ウインドウ内で右クリックします。

するとメニューが出てくるので、「挿入」から「標準モジュール」を選択します。

画像9

「標準モジュール」として「Module1」が追加されます。

この「Module1」をダブルクリックします。

画像10

すると真ん中のウインドウが「Module1」用にVBAを記述できるようになります。

この空白スペースにVBAのプログラムを記述します。

画像11

VBAの基本記述方法、プロシージャ・関数について

では実際にVBAを記述します。

まずはVBAの基本的な書き方です。

Sub プロシージャ名()
 ※「Sub」 ~ 「End Sub」の間にプログラムを記述する
End Sub

いろいろな書き方がありますが、まずは上記の書き方から覚えましょう。

まず1行目で「Sub プロシージャ名()」と記載しています。

これはプログラムを実行する際には必ず必要です。

この「プロシージャ名」の部分は、プログラムを書く人が自由に決めます。

一部で使ってはいけない文字がありますが、その場合はエラーになります。

特にここでは詳しく解説しません。

「プロシージャ (procedure)」とは、プログラミング用語で、プログラムにおける、処理をまとめたものです。

日本語では「手続き」とも訳されます。

また、「プロシージャ」は「ユーザー定義関数」とも呼ばれ、単に「ユーザー関数」や「関数」とも呼ばれています。

多くのプログラミングでは、「プロシージャ」よりも「関数」と呼ばれる方が一般的かもしれません。

エクセルには標準で関数が使われています。

例えば、数字の合計を計算する「SUM関数」などがあります。

こうした元々エクセルに標準で実装してある関数を「標準関数」や「組み込み関数」とよび、ユーザーがVBAで作成した関数は、「ユーザー定義関数」や「ユーザー関数」と区別して呼ぶ事ができます。

3行目の「End Sub」は、関数の終わりに必ず書きます。

したがってプログラムは、「Sub」 ~ 「End Sub」の間に記述します。

VBAを記述して、メッセージボックスを実行する

「プロシージャ」や「関数」は少し難しい話だったかもしれません。

なるべく現段階で難しい用語などは省きたいですが、大事な事は少しづつ解説していきたいと思います。

プログラムを書く内に、徐々に用語や操作などは身についてくるものです。

というわけで、実際にプログラムコードを以下のように書いてみましょう。

Sub test1()
    
    MsgBox ("HELLO!<1>")
    
End Sub

これはメッセージボックスを表示させるプログラムです。

「MsgBox」という標準関数を使ってメッセージボックスを表示させます。

メッセージボックスにはメッセージが必要です。

メッセージは「HELLO!<1>」になります。

記述したら、こちらの「test1」の関数を実行してみましょう。

「画像12」のように、マウスカーソルを「Sub test1()」~「End Sub」の間に表示させます。

これは、現在は1つの関数しかありませんが、複数の関数が記述されていた場合、どの関数を実行するか選択するためです。

マウスカーソルをtest1関数内に表示させたら、上のメニューにある再生のようなマークの実行アイコンをクリックします。

画像12

実行すると、エクセルのブック内でメッセージボックスが表示されればOKです。

画像13

最後にメッセージボックスの「OK」を押して閉じ、書いたプログラムを保存しておきましょう。

画像14

<補足情報>

いくつか補足情報を掲載します。

「MsgBox」のカッコについて

test1関数では「MsgBox (“HELLO!<1>”)」と記載しました。

しかしこの中に省略できるものがあります。

それは()括弧です。

以下のtest2関数をご覧下さい。

こちらは「MsgBox “HELLO!<2>”」と記述され、括弧が省略されています。

Sub test1()
    
    MsgBox ("HELLO!<1>")
    
End Sub

Sub test2()
    
    MsgBox "HELLO!<2>"
    
End Sub

どちらも同じように動作します。

恐らく多くの人は括弧を省略して書いていると思いますので、省略して書いて問題ありません。

ただし、省略できないケースがありますので、今は省略できる事と、省略出来なケースがある事だけ覚えておきましょう。

マウスカーソルが関数内に無い場合に、関数を実行した時

「画像12」では、マウスカーソルが関数内に表示させて、実行アイコンをクリックするよう解説しました。

それでは、マウスカーソルが関数の外にある場合、実行アイコンをクリックするとどうなるでしょう。

「画像15」のように、マウスカーソルを関数の外に出して実行してみます。

画像15

すると、「画像16」のような子ウインドウが表示されました。

先程の場合だと、どの関数を実行すれば判断がつかなかったので、このウインドウから改めて「test1」「test2」の実行したい関数を選択して、「実行」をクリックします。

こうする事で、実行したい関数だけを実行する事が可能です。

画像16
よかったらシェアしてね!
目次
閉じる