Excel VBA Programming

[Excel VBA] コードの書き方を一連の流れで解説

2020年3月3日

 

 

本記事の内容はエクセル2019で動作確認を行っています。

最後に練習があるので、手を動かして習得するようにして下さい。

 

困ってます
ExcelVBA初心者です。マクロの記述方法が分かりません。一連の流れが知りたいです。

 

本記事はこのような疑問にお答えします。

サイト運営者であるロンピー(@ronpeee0809)はExcelVBAを使用して現役で会社の業務改善を行っています。

これからVBAを学ぶ方がスムーズに学習を進められる手助けをしていきます。

 

この記事を読んでもらうと、

VBEを起動してからコードを記入し、マクロを保存するまでの流れ

が分かります。

 

VBEの起動

 

VBEの表示方法は2種類で、

・「開発」タブの左端「Visual Basic」をクリック

・シート名の上で右クリック後、「コードの表示」をクリック

で表示されます。

 

標準モジュールの追加

 

VBEが表示されると左側にプロジェクトエクスプローラが準備されています。

ここにモジュールと呼ばれる、VBAを記述するシートを保管していきます。

 

モジュールには、

Microsoft Excel Objects This Workbookはブック自体、各Sheetはシートに、何か操作をしたら自動的にマクロが動き出すようにVBAを入力する場所
フォームモジュール フォームを表示し、動作を指示するVBAを記述する場所
標準モジュール 基本的にVBAを記述する場所。
クラスモジュール オブジェクト指向と呼ばれる「クラス」を定義する場所。

の4種類があります。

 

今回は最も基本的な標準モジュールにVBAを記述する方法を考えます。

VBEを起動したら、「挿入」タブをクリックし、「標準モジュール」を選択しましょう。

 

参考

削除したいときは、削除したいモジュールの上で右クリックをし、「Module1の開放」をクリックする。

その後、「削除する前にModule1をエクスポートしますか?」と聞かれるが、「いいえ」をクリックする。

 

VBAを記述しよう

 

標準モジュールが追加できたら、早速VBAを記述していきましょう。

記述する場所は上記赤丸のコードウィンドウです。

 

プロシージャを作成

 

ExcelVBAの基本構文です。

Sub プロシージャ名()

    内容

End Sub

 

エクセルに指示したい内容はSubからEnd Subの間に記述していくことになります。

 

プロシージャとはこの間の内容を指し、指示のひとまとまり(ブロック)のことです。

プロシージャ名については英語でも日本語でも大丈夫ですので、ご自身の環境に応じた選択をしてください。

 

VBAを記述する

 

それでは、本題のVBAの記述をします。

今回は、A1セルに「テスト」の文字を入力するというコードを書いてみましょう。

 

まず、プロシージャ名を「練習」と書いてみましょう。

次に内容を書く場所は、SubからEnd Subの間です。

range(“A1”).value=”テスト”

と記述してください。

 

Sub 練習()

    Range(“A1”).Value=”テスト”

End Sub

 

この際、内容はインデント(字下げ)をすることに、注意しましょう。

段落が一つ落ちているのが分かりますか。

コードがすべて左詰めでも問題なくマクロは動作します。

ただ、見やすさ、可読性をを考えたとき、内容ごとにインデントするクセをつけるようにしてください。

また、テストは文字列になるので、「“(ダブルクォーテーション)」で囲むことで文字列と認識します。

数字は文字列ではないので必要ないですよ。

 

もう一つお気づきでしょうか?

すべて小文字で入力してもらいましたが、単語の先頭が大文字になっているはずです。

これはエラーではなく、正しく入力されると、単語の先頭は大文字になります。

なので、入力後小文字のままでしたら、何か記入ミスが考えられるので見直すようにして下さい。

 

インテリセンスを活用しよう

 

Excel VBAにはインテリセンス(自動メンバ)機能が搭載されています。

インテリセンスとは

VBAの入力を補助する機能。

途中まで入力すると、自動的に候補を表示してくれる。

という機能です。

 

表示の仕方は2種類あります。

入力途中に勝手に表示

入力途中で自ら「Ctrl+Space」で表示

 

インテリセンスが効かないときは設定ができていない可能性があります。

VBEの「ツール」>「オプション」>「編集」タブ>「コードの設定」の「自動メンバ表示」にチェックを入れておきましょう。

 

コメントの入力方法

 

コードをたくさん記入すると、見返したときにどのような内容かわかりづらい場面があります。

そのような時はコメントをメモ代わりに使うとわかりやすくなります。

 

使い方

‘(アポストロフィー)を文字の最初につける。

すると、記入した文字が緑色になります。

これでコメントになっているので、マクロを動かしコメントを通過してもその内容には反応しません。

 

ただ、コードが簡単な内容にコメントをつけるとコードがゴチャゴチャして見にくいです。

ここは必要ってところだけにコメントするようにして下さい。

 

VBAを動かす

 

それでは、記述したコードを動かしてみましょう。

 

動かし方

プロシージャ内をどこでもいいのでクリックし、選択状態にする。

メニュー下のボタンで緑の三角マークをクリック。

 

これで、A1のセルに「テスト」の文字が表示されましたね。

 

 

ブックを保存

 

マクロを含んだブックの保存をしましょう。

VBEのメニュー下の保存ボタンをクリックすると、「名前を付けて保存」画面になります。

希望の名前に変更後、「ファイルの種類」を「Excelマクロ有効ブック(xlsm)」に変更してください。

 

これで保存が完了しました。

 

 

練習問題

 

必ずご自身で入力するようにして下さい。

作業をこなすことが、体得への近道です。

 

(問題)

1.VBEを起動

2.標準モジュール追加

3.プロシージャ作成(プロシージャ名はくだもの)

4.「果物の表」というコメント記入

5.A1に「りんご」

6.A2に「みかん」

7.B2に「1」

この内容を動かしてエクセルシートに記述させてください。

 

 

 

(解答)

Sub くだもの()

    ‘果物の表
    Range(“A1”).value=”りんご”
    Range(“B1”).value=3
    Range(“A2”).value=”みかん”
    Range(“B2”).value=1

End Sub

もし最後までスムーズに動かなければ、何かしらの入力ミスが考えられます。

落ち着いて見直して入力してみて下さい。

 

今回は以上になります。

最後までお付き合いいただきありがとうございました。

 

 

 

-Excel VBA, Programming
-

Copyright© Ronpeee blog , 2021 All Rights Reserved.