VBAでマクロを作るぞー!
あれ、何から書けばいいの?
VBAを含めてプログラミング言語にはコードを書くうえでルールがいくつかあります。
このルールを押さえておけば初めてVBAでコードを書くときも、「何も知らない」から一歩脱却できると思います。
初心者の方に向けてVBAでコードを書くときの基本的なルールと変数の宣言について解説したいと思います。
VBAの基本的なルール
ルール1:コードは上から1行ずつ実行される
当たり前と思われるかもしれませんが、基本的にはコードは上から下へ1行ずつ順番に実行されます。
繰り返しやコードを飛ばす例外もありますが、ビギナーのうちは上から順番に実行されると覚えて問題ありません。
ルール2:コードはプロシージャ内に書く
コードで書いた処理の塊のこと。
VBAでは「Subプロシージャ」「Functionプロシージャ」「Propatyプロシージャ」がありますが、ビギナーのうちは「Subプロシージャ」だけ覚えれば問題ありません。
上記の通り、「Sub プロシージャ名()~End Sub」までがプロシージャとなります。
名前はtomorrowとなっていますが、プロシージャ名は一部を除いて自由に決めることが出来ます。
そして、処理を行うコードはプロシージャの中に記述しなくてはなりません。
何故「Sub」なのかは決まり文句みたいなものなので、気にしないで大丈夫です。
以上本当に基本的なルールはこの2つです。
次にコードを記述する時に、必ずと言って良いほど出てくる単語があります。
それは「変数」です。
変数の宣言
マクロを作る時にほとんどの方が使っていると思いますが、「変数」というものを設定します。
※変数名は基本自由に決められて、日本語でも問題ありません。しかし、バグの可能性などもあるため僕は日本語にはあまり設定しないようにしています。
数字や文字などの値をいれる箱のこと
変数の宣言には「Dim 変数名」で作ることができます。
変数にはイコール(=)を使って値を代入することができます。(数字や文字、日付など)
このように変数の宣言と代入ができるようになると、VBAの世界が一気に拡がります。
今までの事を活用して、コードを書いてみたいと思います。
また、変数を宣言するときはには「型」というものもあります。
変数の型
変数で値を扱う場合には型というものがあります。
箱(変数)の種類を表したもの
例えば、同じ箱の中に「アイス」と「おでん」を入れることはできますが、あまりいい感じはしません。「アイス」は冷たい箱、「おでん」は温かい箱に入れたいですよね。
そこで、箱の種類を分けて適切なモノ(データ)を入れられるようにしたカタチを型と言います
型に入れることでモノ(データ)が壊れたり、取り出すときに間違い(エラー)が起こりにくくなります。
コードを書いていて、1でも数字の「1」や文字の「1」などVBAでは同じ値でも型で結果が変わったり、エラーが出たりするときがあります。
変数の型の宣言
この表を見て、「バリアント型は自動で型を選択してくれて、どんなデータも入るなんてすげー」と思われた方はちょっと待ってください。自動で型選択してくれると言うことは意図しない型を勝手に宣言されてしまう可能性もあります。
1 + 2 = 3としたいけど、12になってしまう・・・
これは、数字を代入するときにダブルコーテーションをしてしまい、文字列として認識してしまっています。けど、型を設定してあげると、
Longの型を設定してあげただけで、思い通りの処理になりました。
このようなミスを防ぐ為にも型を設定してあげた方がエラーや結果が変わる心配が減ります。
以上のように
変数には型を宣言しなくてはいけない場合もあることが分かりましたが、
ビギナーの方は型宣言はしなくても良いです。
「ここまで書いておいて」と思ったかもしれませんが、型まで気を配ると面倒になってコードを書くのが嫌になると思います。なので、始めは気にしないで自由に書いてエラーが出たら対処しましょう。
もちろん、始めから出来る方はやったほうが良いと思います。
まとめ
長くなりましたが、これからVBAライフを楽しんでいきましょう。
コメント