【ExcelVBA】プログラム(マクロ)を組むための基礎知識と基本ルール【プログラミング】

VBA VBA基礎知識アイキャッチ

ExcelVBAでプログラムを組む上で知っておくべきことがあります。

 

Excelがあれば、VBAという言語を使ったプログラミングを行うことができます。

環境構築が簡単なので、とっつきやすいプログラミング言語ですね。

関連:Excelでプログラミングできる環境を構築し簡単なプログラムを組んでみる

 

今回は、VBAでプログラミングをする上で知っておくべき基本ルールと基礎知識を紹介します。


ExcelVBAの基礎知識

まずは、VBAでプログラミングをする際の基礎知識を見ていきます。

分からないことやプログラミングで困ったことがあったらteratail(テラテイル)で相談してみましょう。

関連:プログラム系質問サイト「teratail(テラテイル)」が初心者に優しすぎてスゴイ

VBAで組んだプログラムをマクロという

プログラミング言語はVBAですが、出来上がったプログラムのことは「マクロ」といいます。

人が使う言葉でイメージしてみると、

  • VBAが日本語や英語など、言葉の種類のこと
  • マクロが詩や小説など、言葉を使って書かれた文章のこと

という感じですね。

「マクロを組む」という人がいますが、それはVBAでプログラムを組む、ということです。

プロシージャという塊を作る

VBAでプログラムを組む際は、プロシージャという塊を作っていくことになります。

プロシージャとは、プログラミングにおいて複数の処理を一つにまとめたものをいいます。

・・・よく分かりませんね。

 

小説で言うと、段落のようなものだと思うと分かりやすいです。

段落は、区切りの良いところまでをまとめた文章の塊のことですね。

小説は、段落がたくさん集まってできています。

 

プロシージャも同じようなイメージです。

プロシージャは、いくつかの命令文を書いてまとめた塊のことです。

それらがたくさん集まって、マクロになります。

インデントを付けながら入力する

インデントとは、ざっくり言うと隙間のことです。

Wordにもインデントはありますよね。

 

インデントを付けながらプログラムを入力することで、プロシージャなどの塊が見やすくなります。

例を示すと、こんな感じです。

プロシージャ始め   プロシージャの中身プロシージャ終わり

キーボードの「Tabキー」でインデントを下げ、「Shiftキー + Tabキー」で上げることができます。

プログラムが複雑になればなるほど、インデントの重要性は増してくるので、早い段階で慣れておいた方が良いです。

コメントというものを残せる

プログラムの中に、コメントを残すことができます。

コメントはメモのようなもので、プログラムには影響しないため自由に入力できます。

VBAでは「’(アポストロフィー)」の後に書いたものはコメントになります。

例を示すと、こんな感じです。

'コメントは自由に書けます。'プログラムには影響しないため、メモとして使います。

VBAをする上で知っておいた方が良い最低限の基礎知識でした。

あくまで最低限なので、他にも知っておいた方が良いことはたくさんあります。

実際に使いながら、少しずつ覚えていきましょう。

スポンサーリンク

ExcelVBAの基本ルール

ソースコード

次は、VBAでプログラムを書く際の基本ルールを見ていきます。

大事なルールだけをまとめますので、最低限のルールとしてしっかり覚えましょう。

命令文は半角英数と半角記号で入力する

プログラムの命令文は、半角で入力する必要があります。

これはどのプログラム言語にも言えることです。

例外として全角の日本語が使えるのは、自分で自由に付けられる名前、コメント、文字列くらいです。

プログラムは必ず半角で入力しましょう。

命令文は1行に1つ

命令文は1行に1つだけ書いていきます。

2つの命令を同じ行に書くことはできませんので、注意しましょう。

 

マクロは、プロシージャという塊が集まってできているものでした。

そのプロシージャは、たった1行の命令文がたくさん集まってできています。

マクロは、1行をどう組み合わせるかでできているということですね。

やってほしいことは必ずプログラムに書く

プログラムには、やってほしい処理があったら必ず書かなければ動いてくれません。

当たり前だと思うかもしれませんが、結構大事なことです。

 

例えば、入力した数値を2倍にするプログラムがあったとします。

2倍にした結果を知るために組んだプログラムだったとしても、実は「2倍にする」という命令だけだと、私達は結果を知ることができません。

なぜかというと、「計算結果を表示する」という命令を書いていないからです。

2倍にはしていますが、パソコン的には「命令通り2倍にしましたけど、何か?」という感じです。

結果が知りたいのなら「人間が分かるように結果を表示してね」という命令も書き込む必要があります。

プログラムは実行したい順番に入力する

プログラムは塊を一気に実行するのではなく、上から1行ずつ実行されます。

これはVBAに限らずどのプログラム言語にも言えることです。

 

例えば、変数に入れた数字を2倍にして表示するプログラムがあったとします。

変数が何かがよく分からない場合は、以下の記事で説明しています。

関連:変数とは?変数のイメージと使う理由を具体例で分かりやすく

その場合、まずは変数を2倍にする処理を書き、次の行に結果を表示する処理を書きます。

'手順①:変数の数値を2倍にする'手順②:結果を表示する

もし間違えて、結果の表示処理の次に2倍する処理を書いたとすると、表示には2倍にする前の数値が出てしまいますので、何度やってもうまくいきません。

実行順番が違うと、結果が違ってくることがありますので、入力する順番は気を付けましょう。

文字列は”(ダブルクォーテーション)で囲む

VBAにおいて文字列を表す記号は、”(ダブルクォーテーション)を使います。

“文字列”のように、「”」で囲んだところを文字列だと判断します。

文字列は、例えばメッセージを日本語で表示するときなどに使いますね。

 

ExcelのIF関数などを使ったことがある方は、同じルールだと気が付くかもしれません。

Excelの関数を使う際にも、全く同じルールなので、ついでに覚えておきましょう。


このように、VBAでプログラムを組むためには、守らなければならないルールがあります。

ルールを守らないと、エラーで動かなかったり、何度やっても意図した結果が得られなかったりします。

プログラムは命令通りに動いてくれる代わりに、融通が利かないこともあるので、臨機応変に対応ができる人間側がパソコンのルールに合わせてあげましょう。


今回のまとめ

VBAでプログラミングをする上で知っておくべき基礎知識と、基本ルールをまとめました。

 

基礎知識として、いくつかの言葉と機能を知っておくと後々役に立ちます。

VBAで組んだプログラムのことを「マクロ」という。

マクロは、「プロシージャ」という小さな処理の塊が集まってできている。

「インデント」という隙間をTabキーで開けながら入力すると、塊の範囲が明確になる。

「’」で「コメント」にすると処理に影響しないので、メモを日本語で残せる。

 

また、VBAでプログラムを書く上で守らなければならないルールもあります。

ルールを守らないと、エラーで動かなかったり、意図した結果が得られなかったりします。

命令文は必ず半角英数で入力する。

命令文は、1行につき1つだけしか書くことができない。

結果表示などの当たり前だと思うことも、入力しないとやってくれない。

プログラムは上から順に1行ずる実行されるので、入力する順番に注意する。

表示するメッセージなどで文字列を使いたいときは、「”」で囲む。

 

ここで紹介したのは、あくまでも最低限のものです。

ですが、これらを知っているだけで、あとは1つ2つくらいの単語でも簡単なプログラムは組めます。

メッセージを表示する、とか単純なものですけどね。

それでも、しっかりルールを守ればプログラムは動いてくれる、という実感は持てます。

自分が組んだプログラムが動くのは、嬉しいものですよ!

 

ちなみに、命令文の単語を覚えることはそこまで重要だとは思いません。

私は英語が苦手で、プログラムで使う単語は知らないものばかりでしたが、全然問題ありませんでした。

検索すれば出てきますし、あまり使わないものを覚えても仕方がないです。

よく使うものは自然に覚えていきますので、じっくりマイペースでやってみる方が良いと思います。

 

検索するスキルは大事だと思うので、分からないことや、「こんなことは出来るかな?」と思ったことは、積極的に調べてみましょう。

また、質問することも大切です。

teratail(テラテイル)のように、初心者マークを付けて質問できるところもありますので、調べても分からなかったことは聞いてみるというのも1つの手ですよ。

関連:プログラム系質問サイト「teratail(テラテイル)」が初心者に優しすぎてスゴイ

 

ここまでお読みいただき、ありがとうございました。

 

関連:Excelでプログラミングできる環境を構築し簡単なプログラムを組んでみる

関連:変数とは?変数のイメージと使う理由を具体例で分かりやすく