VBAオジサンのらくがき帳

#03 変数の宣言と演算のきほん

2020-08-10 00:00:00

基本的な値の型と表記法(リテラル)について前回はなしましたが、リテラルだけでソースコードを書けるということはほとんどなく、多くの場合で値を入れるための変数をつかうこととなります。変数については、数学で出てきた変数と同じように考えてもいいですし、中にいろいろな値を入れることができる箱のようなイメージで考えてもいと思います。

変数を使用するためには Dim ステートメントをつかい下のように宣言をおこいます。

例)
Dim i As Integer

宣言をしないで変数をつかう方法もありますが、#01の回でもはなしたように、VBエディタの「変数の宣言を強制する」を設定して、宣言してない変数をつかうとエラーがでるようにしておくことをおすすめします。型の省略も可能ですが、型が決まっているときは省略しないことをおすすめします。

変数に値を代入するためには演算子 = をつかいます。下の例の式は両辺の値が等しいという意味でつかわれているのではなく、右の値を左の変数に代入する、という処理につかわれていることに注意してください。

i = 1

下の例でも i が i + 1 に等しいではなく、i に i + 1を代入する、つまり i の値を1プラスするという処理をおこなっています。

i = i + 1

数字を使った四則演算 + 、 – 、 * 、 / は大体想定どおりの動きをすると思って大丈夫です。そのほかには、べき乗を行う演算子 ^ や、あまりを求める演算子 Mod もあります。1点だけ、整数どうしの除算の結果の小数点以下は切りすてられることには注意してください。

演算子 & は文字列を連結するためにつかいます。+ でも連結することができますが & のほうが意味がはっきりするのでこちらをつかうことをおすすめします。(VBA では文字列の中の一部を切りとるような演算子はなく、Mid、Right、Leftなどの関数をつかいます。)

演算の順序は基本的に算数の計算を同じようなになっていて、先に実行させたいところをカッコで包むのも同じです。文字列演算と算術演算を1つの式に入れることもできます。計算の順番に気をつけないと下のような違いで、想定外の動きをするかもしれませんので気をつけてください。

s = "A" & 1 + 2 's は A12 となる
s = "A" & (1 + 2) 's は A3 となる