見出し画像

VBA⑥|構文のルール・その2|変数とデータ型をマスターしよう!


◆変数とは?わかりやすく一言で!

「あとで使うために、名前を付けてデータを一時的に保存しておく箱」

たとえば、合計金額を一時的に入れておく「金庫」みたいなものです。
その箱には名前(例:total)を付けておき、後で取り出したり、加算したりします。


◆VBAでの変数の書き方(基本形)

Dim 変数名 As データ型
  • Dim:「この変数を使いますよ」という宣言(Declare In Memoryの略)

  • 変数名:値を入れる箱の一意の名前。何でもいいですがプログラム内で何が入っているか見て分かるような名前を付けるのが理想

  • AS データ型:「この変数は●●という種類(型)です」という意味


◆VBAでよく使うデータ型一覧

よく使う、データ型とその説明、使用例を以下に書いていきます。

  • Integer(整数(-32,768~32,767)):行番号など

  • Long(大きめの整数):金額・IDなど ←数字を扱う場合は常にこれでもいいです。

  • Single(小数を含む実数(単精度)):割合・比率など

  • Double(より高精度の実数(倍精度))科学計算など←小数点以下の数字を扱う場合は常にこれでもいいです。

  • String(文字列):名前・商品名など←文字列を扱う場合は常にこれ

  • Boolean(真(True)か偽(False)):チェック有無など

  • Date(日付・時間):登録日・締切日など

  • Variant(何でも入る):自動判別 ←汎用的に使うには良いが注意必要


◆変数の初期値・スコープ(有効範囲)

  • 初期値:VBAではDimで宣言すると、各型に応じて初期値が入ります

    • 数値(Long等) → 0

    • 文字列(String) → 空文字("")

    • 真偽(Boolean) → False

  • スコープ(有効範囲)

    • Sub内(プロシージャの中)で宣言 → その中だけで使える(ローカル変数)

    • モジュールの先頭で宣言 → そのモジュール内全体で使える(モジュール変数)

    • Publicで宣言 → 他のモジュールからも使える(グローバル変数)


◆具体的な使用例で見てみよう

使用例①:変数に値の代入と読み出し

Dim total As Long
Dim name As String

total = 15000
name = "田中さん"

MsgBox name & "の売上は" & total & "円です"

実行結果:田中さんの売上は15000円です

「total」は整数型、「name」は文字列型として宣言することで、それに準じた値が入れられます。
「total」と「name」に値を入れると、変数名を指定するだけで設定されている値を呼び出すことが出来ます。


使用例②:変数を使って合計を計算する

Sub 合計計算()
    Dim i As Long
    Dim total As Long
    total = 0

    For i = 1 To 5
        total = total + Cells(i, 1).Value
    Next i

    MsgBox "合計は " & total & " です"
End Sub

total に1行ずつの値を加算していき、最後に結果を表示
このように一時的な計算結果を入れておくのも変数の使い道の一つ


◆変数を使うメリット

  • 計算や処理の途中経過を保持:合計・平均などを計算しやすい

  • 再利用できる:一度代入した値を、あとで何度でも使える

  • コードが読みやすくなる:「Cells(1,1).Value」より「customerName」の方が意味が明確

  • 処理速度が上がることもある:値を毎回シートやセル等から読み直すより変数のほうが高速


◆よくあるエラーや注意点

  • 変数が使えない(未定義エラー):Dimで宣言していない

  • 変数に文字を代入してエラー:String型にしていない

  • 小数が正しく扱えない:Integer や Long にしている


◆まとめ:

VBAの変数は、たとえるなら「作業中のメモ帳や電卓のメモリ機能」。
これをうまく使うことで、以下のようなスキルが身につきます。

  • 繰り返し処理や条件分岐に対応できる

  • 入力データの検証や加工ができる

  • 実務マクロをより効率的・安全に作れる

次回は、条件による分岐について詳しく解説する予定です。

この記事が役に立った方は「スキ」やブックマークをお願いします。



いいなと思ったら応援しよう!

Rin Sumi Zeal 応援ありがとうございます!