VBA再入門
マクロを書いて動かす(SubとF5)

マクロが覚えられないという初心者向けに理屈抜きのやさしい解説
公開日:2015-08-18 最終更新日:2020-09-26

第2回.マクロを書いて動かす(SubとF5)


マクロを実際に書いて動かしてみましょう、
知識の積み上げも必要ですが、それ以上に必要なのが体験の積み上げです、
マクロVBA習得においては、
とにかく書く、
とにかく動かす、
この経験に勝るものはありません。


前回のマクロを書く準備は完了していますよね。
・開発タブの表示 ・VBEの設定 ・標準モジュールの挿入 ・「マクロを書く準備をする」のまとめ ・ExcelマクロVBA入門の対応ページ

マクロ有効ブックの作成

ではさっそく書いていきましょう。
っと、その前にブックを用意しましょう。

・新規ブックを開いてください。
・新規ブックを名前を付けて保存します。
 ただし、ファイルの種類に気をつけてください。
 必ず、マクロ有効ブックにしてください。
 

Excel ファイルの種類

最初は上のように、Excel ブック(*.xlsx)となっていますが、
これでは、マクロが保存できないのです。

Excel ファイルの種類

拡張子(*.xlsm)の部分は表示されないPCもありますが、特に気にしなくて良いです。
Excel マクロ有効ブック」となっていることを確認してください。

マクロVBAを書いてみる

VBEを起動(開発タブからVisual Basic、Alt + F11)してください。
標準モジュールが挿入してなければ、標準モジュールを挿入して下さい。
標準モジュールを挿入したはずなのに見当たらない場合は、

Excel 標準モジュール

このように、VBEの左上のプロジェクトという部分の一番下に、
標準モジュールがあり、その下に、Module1があれば、標準モジュールは挿入済みなので、
このModule1をダブルクリックしてください。

はい、ではマクロを書きましょう。

Excel サンプル プロシージャー

sub 練習1

と入力し、Enterして下さい。
subは小文字で入力します。
すると、

Excel サンプル プロシージャー

このように、
subの先頭のsが大文字のSとなり、後ろに()が付きます。
そして、下に、End Subが追加されます。

これが1つの機能を持ったマクロになります。
SubからEnd Subの間に、やりたいことをマクロの言語であるVBAで書いていきます。
上では何も書いていませんので、マクロの器だけ用意した事になります。
さすがにこれでは、何もしないマクロってことになりますので、何か書き加えてみましょう。

Subの中に何かを書くときは、1段さげて書きます、インデントと言います。
それには、「TAB」キーを押します。
「TAB」キーは(大抵のPCでは)キーボードの一番左の上から3番目です。

Excel サンプル プロシージャー

このように、「TAB」キーを押すことで、半角4文字分下がった状態になります。
では、

Excel サンプル プロシージャー

msgbox "おはよう"

と入力し、Enterして下さい。
msgboxは小文字で入力します。
すると、

Excel サンプル プロシージャー

このように、
msgboxのmとbが大文字に変わりMsgBoxとなります。

MsgBoxはメッセージボックスといって、MsgBoxに続けて書いた文字を、ポップアップウインドウとして表示するものです。

VBAで使用する単語は、
・英単語をそのまま
・英単語を連結している
・英語の頭文字で略している
ほぼこの3通りおよびその組み合わせになっています。
MsgBoxは、MessageBoxの略になっていますね。

マクロVBAの実行

さて、マクロを書いたら、実行しないと意味がありません。
マクロの実行方法は、
入力カーソル(縦棒の点滅、下の画像では、MsgBoxの下)が、
Sub~End Subの間にある状態で行います。

Excel プロシージャーの実行

挿入の下あたりにある右向き緑の三角アイコン
または、メニューの実行
ショートカットとしてはF5が用意されています。

Excel サンプル

どうですか、
ちゃんとメッセージボックスが表示されたはずです。
メッセージボックスはOKボタンを押して閉じてくださいね。
以上が、マクロを書いて実行する手順です。

複数のマクロVBAを書く

続けて、もう一つマクロを書いてみましょう。

Excel サンプル プロシージャー

練習1の時と同じ手順で書けましたか。

小文字で入力する
subの中は、TABでインデントを付ける


逆に面倒・・・などと思わないでくださいね、
大文字で書こうが、インデントを付けなかろうが、マクロは動きます。
でも、でも、これは絶対に守ってください。
マクロが自在に書けるようになった時、この重要性が分かリます。
それまでは、そのように書くものだと理解してください。

練習1と練習2が出来ましたが、
このように、一つの標準モジュールに複数のマクロが書けます。
いくつでも好きなだけマクロを追加していけます。

プロシージャーとは

マクロという言い方をしてきましたが、VBAでの正式な呼び方としては、
プロシージャーといいます。
呼び方など知らなくてもマクロを書けますが、今後の説明の便宜上必要なので書きました。
今後は、マクロという言い方と、プロシージャーという言い方が混在することもあるかもしれませんが、同じこととしてとらえてください。
1つのマクロの塊をVBAではプロシージャーと呼ぶというだけの事です。

ここでもう少しだけ文法の話をします。
上のマクロで書いた、
練習1や練習2がマクロの名前になります。
この名前の付け方に若干の制限があります。

・使える文字は英数大小文字および全角(漢字も含む)が使えます。
・英記号は_アンダーバーのみ(半角・全角とも)
・先頭に数字は使えない
・一つの標準モジュール内では、同じ名前は付けられない

これだけ覚えておけばOKです。
何より、日本語で書けば、上記の制限はほとんど気にならないはずです。

「マクロを書いて動かす」のまとめ

・標準モジュールを挿入
・sub 名前 ここまで入れたらEnter
・Subの中では、TABキーでインデント
・Sub~End Subの間に入力カーソルを置いて実行F5

ExcelマクロVBA入門の対応ページ

第6回.とにかく書いて見よう(Sub,End Sub)
それでは、とにかくマクロVBAを書いてみましょう。VBEで実際にマクロを書いてみましょう VBE(VisualBasicEditor)に標準モジュールを追加したら、そこにマクロを書いていきます。sub練習1 と入力し、Enterして下さい、このように、subがSubと先頭が大文字になり、後ろに()が付きます。

第7回.マクロを実行するには(F5)
・VBEの画面で実行 ・ワークシートの開発タブで実行 ・ボタンや図形に登録して実行 ・マクロを実行すると



同じテーマ「マクロVBA再入門」の記事

第1回.マクロを書く準備をする(VBAとVBE)

・開発タブの表示 ・VBEの設定 ・標準モジュールの挿入 ・「マクロを書く準備をする」のまとめ ・ExcelマクロVBA入門の対応ページ
第2回.マクロを書いて動かす(SubとF5)
第3回.セルに数字や文字を入れる(RangeとCells)
・セルに文字を入れる ・セルに数字を入れる ・マクロVBAを実行 ・RangeとCells ・セル範囲(複数セル)に一括入力 ・「セルに数字や文字を入れる」のまとめ ・ExcelマクロVBA入門の対応ページ
第4回.セルの値を使って計算する(四則演算)
・セルの値を使って足し算 ・セルの値を使って四則演算 ・セルの値を使った応用計算 ・ワークシートの関数を使った計算 ・ExcelマクロVBA入門の対応ページ
第5回.同じ計算を行数分繰り返す(For~Next)
・練習用のデータ作成について ・1行だけの計算をする場合は ・VBAの変数とは ・変数を使って行をずらしていく ・デバッグ:ステップ イン F8 ・変数を使った繰り返し処理 ・For~Nextの補足説明 ・VBAコードの書き方について ・ExcelマクロVBA入門の対応ページ
第6回.表の先頭から最終行まで繰り返す(ForとEnd(xlUp).Row)
・表の最終行を取得する ・表の最終行まで繰り返す ・VBAの文法を覚える必要があるか ・ExcelマクロVBA入門等の対応ページ
第7回.セルの値によって計算を変える(Ifステートメント)
・Ifの説明用のサンプル ・マクロVBAでのIfの使い方 ・Ifステートメントの書き方 ・Ifのネスト(入れ子) ・AndとOr ・ElseIfとSelect Caseについて ・マクロVBAは、プログラミングです ・Ifステートメントの練習問題 ・改行方法について ・ExcelマクロVBA入門等の対応ページ
第8回.表範囲をまとめて消去する(OffsetとClearContents)
・見出しを残しデータ部分のみ消去 ・Offsetを使って範囲をずらす ・データ範囲に関係なく消去する場合 ・ExcelマクロVBA入門等の対応ページ
第9回.関数という便利な道具(VBA関数)
・これだけは覚えておきたい必須VBA関数 ・VBA関数の練習 ・ExcelマクロVBA入門の対応ページ
第10回.ワークシートの関数を使う(WorksheetFunction)
・マクロVBAでのワークシート関数の使い方 ・長いスペルの単語を簡単に入れる方法 ・ワークシート関数を使ってみよう ・ワークシート関数を使う時の注意点、エラー対策 ・ExcelマクロVBA入門等の対応ページ
第11回.分からない事はエクセルに聞く(マクロの記録)
・マクロの記録の使い方 ・実際に分からない事を調べる時の手順 ・「分からない事はエクセルに聞く」のまとめ ・ExcelマクロVBA入門等の対応ページ


新着記事NEW ・・・新着記事一覧を見る

ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ