【VBAプログラミングの基礎】「基本ルール」と「変数の宣言」を解説

【VBAプログラミングの基礎】「基本ルール」と「変数の宣言」を解説

VBAでマクロを作るぞー!

あれ、何から書けばいいの?

VBAを含めてプログラミング言語にはコードを書くうえでルールがいくつかあります。

このルールを押さえておけば初めてVBAでコードを書くときも、「何も知らない」から一歩脱却できると思います。

初心者の方に向けてVBAでコードを書くときの基本的なルールと変数の宣言について解説したいと思います。

こんな方におすすめ

・VBAでコードを書くときに「何も知らない」から一歩脱却したい方

・変数って何?と思っている方

・変数を宣言と型について知りたい方

結論

・ルール1:コードは上から1行ずつ実行される

・ルール2:コードはプロシージャ内に書く

・変数とは「数字や文字などの値をいれる箱」のこと

・変数の宣言は

Dim 変数名

・変数には型があり、何も宣言しないとバリアント型になる。バリアント型は意図しない型に自動選択される可能性があるので注意が必要。

Dim 変数名 As 型

・ビギナーの方は無理に型宣言しなくて良いです

VBAの基本的なルール

ルール1:コードは上から1行ずつ実行される

当たり前と思われるかもしれませんが、基本的にはコードは上から下へ1行ずつ順番に実行されます。

繰り返しやコードを飛ばす例外もありますが、ビギナーのうちは上から順番に実行されると覚えて問題ありません。

ルール2:コードはプロシージャ内に書く

「プロシージャ」って何?

コードで書いた処理の塊のこと。

VBAでは「Subプロシージャ」「Functionプロシージャ」「Propatyプロシージャ」がありますが、ビギナーのうちは「Subプロシージャ」だけ覚えれば問題ありません。

上記の通り、「Sub プロシージャ名()~End Sub」までがプロシージャとなります。

名前はtomorrowとなっていますが、プロシージャ名は一部を除いて自由に決めることが出来ます。

そして、処理を行うコードはプロシージャの中に記述しなくてはなりません。

何故「Sub」なのかは決まり文句みたいなものなので、気にしないで大丈夫です。


以上本当に基本的なルールはこの2つです。

次にコードを記述する時に、必ずと言って良いほど出てくる単語があります。

それは「変数」です。

変数の宣言

マクロを作る時にほとんどの方が使っていると思いますが、「変数」というものを設定します。

※変数名は基本自由に決められて、日本語でも問題ありません。しかし、バグの可能性などもあるため僕は日本語にはあまり設定しないようにしています。

「変数」って何?

数字や文字などの値をいれる箱のこと

変数の宣言には「Dim 変数名」で作ることができます。

変数にはイコール(=)を使って値を代入することができます。(数字や文字、日付など)

このように変数の宣言と代入ができるようになると、VBAの世界が一気に拡がります。

今までの事を活用して、コードを書いてみたいと思います。

コードを書いてみよう

Lesson1【日付を決めて、イミディエイトウィンドウに表示させてみましょう

「プロシージャ名」→tomorrow

「変数名」→day

※シングルコーテーション(‘)の後はコメントになるので、コードには関係ありません。

イミディエイトウィンドウに代入した日付が表示されました。

また、変数を宣言するときはには「型」というものもあります。

変数の型

変数で値を扱う場合には型というものがあります。

「型」って何?

箱(変数)の種類を表したもの

例えば、同じ箱の中に「アイス」と「おでん」を入れることはできますが、あまりいい感じはしません。「アイス」は冷たい箱、「おでん」は温かい箱に入れたいですよね。

そこで、箱の種類を分けて適切なモノ(データ)を入れられるようにしたカタチをと言います

VBAで型についてイメージしやすく解説した図

型に入れることでモノ(データ)が壊れたり、取り出すときに間違い(エラー)が起こりにくくなります。

コードを書いていて、1でも数字の「1」や文字の「1」などVBAでは同じ値でも型で結果が変わったり、エラーが出たりするときがあります。

変数の型の宣言

この表を見て、「バリアント型は自動で型を選択してくれて、どんなデータも入るなんてすげー」と思われた方はちょっと待ってください。自動で型選択してくれると言うことは意図しない型を勝手に宣言されてしまう可能性もあります。

どんなときに型があった方がいいの?

1 + 2 = 3としたいけど、12になってしまう・・・

これは、数字を代入するときにダブルコーテーションをしてしまい、文字列として認識してしまっています。けど、型を設定してあげると、

Longの型を設定してあげただけで、思い通りの処理になりました。

このようなミスを防ぐ為にも型を設定してあげた方がエラーや結果が変わる心配が減ります。

以上のように

変数には型を宣言しなくてはいけない場合もあることが分かりましたが、

ビギナーの方は型宣言はしなくても良いです。

「ここまで書いておいて」と思ったかもしれませんが、型まで気を配ると面倒になってコードを書くのが嫌になると思います。なので、始めは気にしないで自由に書いてエラーが出たら対処しましょう。

もちろん、始めから出来る方はやったほうが良いと思います。

まとめ

VBAルールと変数宣言

・VBAの基本的なルール1:コードは上から1行ずつ順番に実行される

・VBAの基本的なルール2:コードはプロシージャ内に書く

・変数って何?:数字や文字などの値をいれる箱のこと

・変数には型があり、何も宣言しないとバリアント型になる。バリアント型は意図しない型に自動選択される可能性があるので注意が必要。

・ビギナーのは無理に型宣言しなくて良いです

長くなりましたが、これからVBAライフを楽しんでいきましょう。

コメント

タイトルとURLをコピーしました