Excel VBAの演算と変数を覚える
Excel VBAは、Microsoft Excelで使用できるプログラミング言語です。
Excelをより効率的に使用するためのプログラミング言語です。Excelをもっと便利に使いたい人におすすめのプログラミング言語です。Excel VBAを覚えると、Excelの作業が楽になります
具体的に出来ることは以下のとおりです。
- Excelの操作を自動化
- 独自の機能を作成
- データの分析・処理
- レポートの作成
- フォームの作成
- マクロの作成
このExcel VBAというカテゴリーでは、私が学んだExcel VBAのコツやテクニックを紹介していきます。
今回は、Excel VBAの演算と変数について今回ご紹介します。
Excel VBAの演算と変数
Excel VBAで演算を行う方法
Excel VBAの演算子の正式にはは、算術演算子を言いますが、以下のものがあります。
+ 足し算
– 引き算
/ 割り算(小数点で求める場合)
¥ 割り算(整数で求める場合)
* 掛け算
^ べき乗
Mod 割り算の余りを求める& 文字列を結合する
実際にExcel VBAで演算子使って計算をしてみましょう
この表の金額欄のF2に、単価✕数量の値を代入させます
VBAのコードは以下の通りです
プロシージャ名はここでは分かりやすく、計算にしました。
Range(“F2”).Valueを例に、RangeオブジェクトとValueプロパティの説明を簡単にします。
Rangeオブジェクトは、セルを指定するものです。
Valueプロパティは値です。
なので、Range(“F2”).Valueの意味はF2の値にということになります。
Range(“F2”).Valueイコール、単価✕数量の値とする場合は、Range(“F2”).Valueの後に=を入力し、単価のセルの値を意味するRange(“D2”).Valueと入力し、掛け算の演算子である*を入力し、数量のセルの値を意味するRange(“E2”).Valueと入力します。
これをF5キーを押して実行させると、以下のようにF2に単価✕数量の値が代入されます(以下の場合、単価が1,500、数量が3なので、4,500となります)。
Excel VBAで変数と変数の使う方法
変数とは簡単に言うと、数値や文字列を一時的に記憶する箱のことです。
変数を使うメリットは、値を一時記憶しておけること、それを何回も使いまわせること、そして、コードの修正が楽になることです。
Excel VBAで変数を使う順序を説明します。
①変数を宣言する
②数値や文字列を変数という箱に入れる(これを代入と言います)
③その変数を、セルに代入する
具体的に、金額欄のF2に、単価✕数量の値を変数を使って代入させる方法を説明します。
VBAのコードですが、以下の通りになります。
最初に変数を宣言させます。
最初にDimと入力し、半角スペースを開け、変数名を入力します(今回は変数名を計算にしました)。そして半角スペースを開け、Asと入力します。そして半角スペースを開け、この変数は整数を入れる箱を意味する型であるLongを入力します。
※変数には必ず型を入力します。型の種類は
Long 整数
Double 少数
Date 日付
String 文字列
Variant 型がわからないので未定
がありますが、実際によく使うのがLongとStringです。
改行し、計算という変数に単価✕数量の値を代入させます。最初に計算と入力し、=を入力し、単価✕数量を意味するRange(“D2”).Value * Range(“E2”).Valueを入力します。
そして改行し、F2に計算という変数を代入させます。F2の値を意味するRange(“F2”).Valueを入力し、=を入力し、変数名の計算を入力します。
※コードを見ると=の間に半角スペースが空いてますが、これは、わざわざ入力しなくても、コードを入力すると自動的に入ります。
これをF5キーを押して実行させます。
するとF2に、単価✕数量の値が代入されます。
変数を入力する際のスペルミス(打ち間違い)を防ぐための設定
最後におまけで、Excel VBAでの変数のスペルミスを防ぐ設定をご紹介します。
Excel VBAで変数を入力する際に、スペルミス(打ち間違い)でエラーが起きてしまい、結果が表示されないということがあります。
それを防ぐために、ツールからオプションを選択し、変数宣言を強制するにチェックを入れてOKボタンを押して有効にしておくと便利です。
これは宣言していない変数を突然使用することを禁止するオプションで、これをチェックしておくと、コンパイルエラー、変数が定義されていませんと、エラーを教えてくれるため、Excelがスペルミスしたことを教えてくれるからです。