【ExcelVBA超入門】初めて変数を使うために必要な基礎知識とは?





こんにちは、VBAマスターのシロ(@siro3460)です。

皆さんは、VBAで変数を使ったことがありますか?

マクロの記録で動かしたことしかない人や、VBAを覚えたての人だと、

Siro
変数?つかわなきゃいけないの?なんだか難しそう・・・

と思う方もいるかもしれません。

どのプログラミング言語でもそうですが、変数はプログラミングをする上で切っても切れない存在です。

そして、使いこなすと強力な味方になってくれます。

そこで今回は、ExcelVBAで変数を使うための基礎知識について徹底的に解説します!

※初心者がつまづきやすいポイントについても詳しく書いています。3分程度で読み終わるので最後までお付き合いください。

変数とは?

まずは、変数って何?の疑問についてお答えします。

変数とは、数値や文字列などを一時的に保存しておく入れ物のことです。

言葉だと伝わりづらいので、次のコードを見てください。

Sub 変数なしのサンプル1()

  ActiveSheet.Range("A1") = 1000 * 1.08
  ActiveSheet.Range("B1") = 2000 * 1.08
  ActiveSheet.Range("C1") = 3000 * 1.08
  ActiveSheet.Range("D1") = 4000 * 1.08
  ActiveSheet.Range("E1") = 5000 * 1.08

End Sub

上のサンプルは、消費税を含めた金額をA1 ~ E1セルに書き込む処理です。

1.08の部分で消費税8%を計算に使っています。

ただ、この書き方だと消費税率が変わった時に、1.08全てを修正する必要がありますよね。

また、変数を使わなかった場合は以下のように書き間違えてしまう可能性もあります。

Sub 変数なしのサンプル2()

  ActiveSheet.Range("A1") = 1000 * 1.08
  ActiveSheet.Range("B1") = 2000 * 1.08
  ActiveSheet.Range("C1") = 3000 * 1.8
  ActiveSheet.Range("D1") = 4000 * 1.08
  ActiveSheet.Range("E1") = 5000 * 1.8

End Sub

1.08を間違えて1.8にしてしまった場合でも、処理としてはエラーにならずセルに値が書き込まれてしまいます。

エラーがでないため、どこで値がおかしくなったのか気づきづらいバグになってしまいます。

変数を使うと、これらの問題を簡単に解決することができます。

Sub 変数を使ったサンプル()

  '消費税率を変数に入れる
  Dim dblTaxCode as Double
  dblTaxCode = 1.08

  '変数を使って計算した値をセルに書き込む
  ActiveSheet.Range("A1") = 1000 * dblTaxCode
  ActiveSheet.Range("B1") = 2000 * dblTaxCode
  ActiveSheet.Range("C1") = 3000 * dblTaxCode
  ActiveSheet.Range("D1") = 4000 * dblTaxCode
  ActiveSheet.Range("E1") = 5000 * dblTaxCode

End Sub

dblTaxCode = 1.08」にしている部分さえ変更すれば値を簡単に変更することもできますし、間違って1.8にしてしまうようなミスもなくなりますよね。

このように、変数を上手く使うことでミスが少なく後から修正もしやすい綺麗なコードを書くことができるようになります。

【超入門】変数の書き方

次に、変数の書き方について説明します。

変数は次のように書きます。

Dim 変数名 as 変数の型
Dim strMessage as String            '1. 変数の宣言
strMessage = "初めて変数をつかったよ" '2. 変数のに値を入れる

のように、「Dim 変数名 as 型」で変数宣言をしてから「=」で値を入れて使うことができます。

変数名にはいくつかルールもありますが、簡単にメモ程度に以下を覚えておくといいと思います。

変数名で使えない書き方
  • 最初の文字が数字
  • 最初の文字が「-」「_」「&」等の記号
  • 同じSubの中では同じ名前の変数は使えない

最低限覚えておくべき変数の型とは

変数の型にはいろいろ種類があるのですが、一度にすべて覚えるのは大変です。

最初は4つだけ覚えておけば問題ないので、以下を覚えておきましょう!

No意味
1Long1、3、6等の整数を入れる
2Double1.08、3.15等の小数を入れる
3String文字列を入れる
4VariantなんでもOKな型
値を入れたときに型が自動で決まる

Long、Double、Stringを最低限覚えればOKなのですが、忘れたときようにVariantも覚えておくイメージですね。

変数の使い方サンプル

最後に、変数の使い方のサンプルをご紹介します。

Sub 変数サンプル()

  '整数
  Dim Money As Long
  Money = 1000

  '小数
  Dim TaxCode As Double
  TaxCode = 1.08

  '文字列
  Dim Message As String
  Message = "今日もはりきってVBA書くぞー!"

  'その他(なんでもOK)
  Dim Free As Variant
  Free = "今回は文字を入れてみました"

  '値をメッセージで確認
  MsgBox "Money:" & Money & vbCrLf & _
         "TaxCode:" & TaxCode & vbCrLf & _
         "Message:" & Message & vbCrLf & _
         "Free:" & Free & vbCrLf

End Sub

この例では、最後にMagBoxで変数の値をメッセージで確認しています。実行すると次のようなメッセージが出ます。

まとめ

今回は、ExcelVBAで変数を使うための基礎知識について解説しました。

変数を使えるようになるとVBAで変なエラーに遭遇しなくなり、きれいなコードも書けるようになるのでぜひ使ってみてくださいね!

The following two tabs change content below.

Siro

ネコ好きフリーランスエンジニア。
開発、技術、働き方、ツールなどについて発信しています。
楽しく、開発しようぜ!