はじめに

VBA超入門シリーズ:その4 ~変数~

 

変数の続きです。

詳しく見ていきましょう!

データ型

データ型という仕組みでは、変数を型で指定することで変数の値を数値だったり、文字列として認識させたりできます。

 

使い方の前にどのようなものがあるのかさらっと確認しましょう。

VBAで使われるデータ型

 型名  型  対象または数値範囲
文字列型 String 任意の長さの文字列
ブール型 Boolean True または False
バイト型 Byte 0 ~ 255の整数
整数型 Integer -32,768 ~ 32,767の整数
長整数型 Long -2,147,483,648 ~ 2,147,483,647の整数
通貨型 Currency -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807の固定小数点数
単精度浮動小数点数型 Single -3.402823E38 ~ -1.401298E-45、1.401298E-45 ~ 3.402823E38
倍精度浮動小数点数型 Double -1.79769313486231E308 ~ -4.94065645841247E-324、4.94065645841247E-324 ~ 1.79769313486232E308
日付型 Date 西暦100年1月1日 ~ 西暦9999年12月31日 (日付と時刻)
オブジェクト型 Object オブジェクト
バリアント型 Variant すべてのデータ
ユーザー定義型 ユーザー定義の型

 

いや、多くないかい??

 

全部覚えていられないので、まずはよく出てくるものだけにします。

 

よく見る型

長整数型(Long)と文字列型(String)がよく使われています。
長整数型(Long)と似たもので整数型(Integer)がありますが、長整数型が ±約2億 に比べ、整数型は ±約3万 と範囲が狭いです。
長整数型で宣言すればある程度はカバーできます。

  • 整数を入れる変数 → 整数型(Integer) or 長整数型(Long)
  • 文字列を入れる変数 → 文字列型(String)

とりあえずは多くのマクロがこれだけで何とかなります。

長整数型 ( Long ) と 文字列型 ( String )!まずはこの2つ!

変数に型を指定

前回の練習では変数を宣言しただけで型の指定をしていません。

 

Dim 変数名

 

今までのように型を指定しない場合、どんな値でも格納する事が出来ます。

 

え、じゃぁ型を指定する必要ないのでは…?

 

とはいきません!!

 

変数に型を指定していない場合、予定と違った値を格納するミスが発生します。
数字を格納しないといけないところに文字が入ってしまったり、小数点以下が勝手に切り捨てられたりと…金勘定になると大ごとですね!

 

 

用途に合わせて型を指定しましょう。

 

指定方法は以下の通りです。

 

Dim 変数名 as データ型

 

変数名の後に「as」を付け、その後にデータ型を指定します。

 

Dim name as String
Dim old as Integer
Dim X as Long, Y as String

 

nameは文字列型を指定、oldは整数型を指定しています。
X と Y のように1行で指定することも可能です。

 

やってみましょう

整数型(Integer)で指定した変数「X」に文字列「こんにちは」を格納してみます。

 

Sub テスト()
 Dim X as Integer

 X = “こんにちは”
End Sub

 

 

整数型の格納可能範囲は -32,768 ~ 32,767 の整数なので、文字は格納できないためエラーになります。

ご親切にエラー内容を教えてくれている!

 

しっかりと格納できるように修正します。
文字列「こんにちは」を格納したいので文字列型(String)を指定しましょう!
ついでに「A1」に記述してもらいましょう。

 

Sub テスト()
 Dim X As String

 X = "こんにちは"

 Range("A1").Value = X
End Sub

 

 

実行!

 

このように変数に型を指定することによって、変数が予期せぬ使い方をされることを防ぎます。

面倒だけど指定しましょう!

 

次回もまた変数の型についてまとめます。
基本は整数型や文字列型で対応できるのですが、ほかの型がどのような使い方をするのか知っておきましょう!

 

「VBA超入門シリーズ:その6 ~変数の型~」に続く