2018年8月18日土曜日

[エクセルVBA]変数とは

event_note8月 18, 2018

変数とは

データを一時的に入れておく保管場所です。「変」という文字がついている通り、値を自由に変えて保存しておくことができます。ただし、自由とはいっても、同じ種類のデータの範囲で変更できます。例えば数値の変数に文字を入れることはできません。

サンプルコード

変数を使って、簡単な計算を行います。みかんとリンゴを買ったときの残金を求めています。

Sub test()Dim 財布 As LongDim みかん As LongDim リンゴ As Long'商品の値段みかん = 300リンゴ = 200'お買い物前財布 = 1000'みかんとリンゴを買う財布 = 1000 - みかん - リンゴ'買い物後の中身を表示MsgBox "財布のなかみは" & 財布 & "円です。"End Sub

 

ポイント解説

変数を「宣言」する

変数が宣言した型で使用できるようになります。

Dim 変数名 as 型

変数名は自由に付けられ、日本語もOKです。ただし、以下のルールがあります。

ひらがな、カタカナ、漢字、英数字、_(アンダースコア)のみ。変数の先頭はアンダースコア以外となること。

型名

特によく使う型を以下に記載します。

型名範囲
ブール型BooleanTrue、False
整数型Integer-32,768~32,767の整数
長整数型Long-2,147,483,648~②147,483,647の整数
単精度浮動小数点数型Single負の値:約-3.4×10(38乗)~-1.4×10(-45乗)
正の値:約1.4×10(-45乗)~1.8×10(38乗)
倍精度浮動小数点数型Double 負の値:約-1.8×(10の308乗)~-4.0×(10の-324乗)
正の値:約4.9×(10の-324乗)~1.8×(10の308乗)
日付型Date日付:西暦100年1月1日~西暦9999年12月31日
時刻:0:00:00 ~ 23:59:59
文字列型String任意の長さの文字列(20億文字まで)
オブジェクト型Objectオブジェクト(セル、ワークシートを参照するのに使用)
バリアント型Variant全ての種類の型

 

変数は代入で上書きできる

変数「財布」は買い物前は1000でしたが、買い物後は500となっています。このように変数は計算結果を代入して、値を変更することができます。

注意点

LongをSingleで代入すると値が変わってしまいます。例えば、以下のようにするとSingleの少数部分が抜け落ちてしまいます。

サンプルコード

Sub test2()Dim A As SingleDim B As LongB = 4.5A = BMsgBox "Aは" & A & "です。"End Sub

実行結果

意図的に違う型に代入することもありますが、特に理由がない場合は同じ型で代入するようにしましょう。

変数とは まとめ

  • 変数とは計算結果などを代入して、値を変更することができる。
  • 用途に応じた型を使う。同じ型どうしで代入しないと、値が正しく代入されないことがある。