【VBA】変数宣言のDimとは?データ型とは?そもそも変数とは何か?

この記事はこんな人向け
  • VBA初心者でプログラミングを学び始めた人
  • 変数とは何かをよく理解できていない人
Kaito

プログラミング初心者が、まず躓く第一のポイントにこの「変数」というものがあります。一度理解してしまえばそんなに難しくないので、しっかりここで理解してしまいましょう!

Contents (目次)

変数とは?

変数とは、ひと言でいうと色んなものを入れられる入れ物のようなものです。そして、取り出したい時にいつでも入れたものを取り出すことができます。

色んなものが入れられるので、何かを入れたら入れ物にあらかじめ名前を付けておく必要があります。例えば、この入れ物は「nomimono(飲み物)」、「nomimono(飲み物)」の中には「cola(コーラ)」を入れる。「cola(コーラ)」は飲み物。といった具合です。

そして、あなたが「nomimono(飲み物)の中身なに?」とマクロに聞いたら、マクロ君はすかさず「cola(コーラ)」と返してくれる。

と、言った感じをイメージして頂けると良いかと思います。

サンプルコード
Dim nomimono as String '入れのもの中身は飲み物でデータ型は文字列。
nomimono = "cola" '飲み物はコーラ
Debug.Print nomimono '変数nomimonoの中身は?→colaと表示。

データ型とは?

実際の世界も同じですが、入れ物には中身に何を入れるのかという用途が大体決まっています。例えばですが、飲み物はコップに入れる。洋服は引き出しに入れる。ごみはゴミ箱に入れるなど、あらかじめ用途が定義されていて適切なものを入れていきます。

これは、変数でも同じことで「これは中身に●●を入れる入れ物です」というのをあらかじめ決めた上で、中身に物を入れていきます。例えば、変数を宣言するときにあらかじめ、この入れ物は数字用、この入れ物は文字用。といった感じです。これをデータ型と呼びます。

何でも入れることのできるデータ型(Variant)も存在するのですが、数値として認識させたい時に文字列になってたなど、意図していない間違いをしてしまった時に間違いに気づきづらくなるため、可能な限りデータ型は正しく定義したほうが良いです。

データ型はたくさんあるのですが、記憶しておいた方がいいのは下記の4つくらいです。

これだけでOK!データ型4つ
Dim nomimono As Long '整数
Dim nomimono As Double '小数点
Dim nomimono As String '文字列
Dim nomimono As Variant '何でも入る

それ以外は、都度「VBA データ型」などと検索して使う必要があるときに参照すれば事足りるでしょう。

データ型名変数データ定義
ブール型BooleanTrue または False真偽
バイト型Byte0~255の正の整数バイト
整数型Integer-32,768~32,767の整数数値
長整数型
*覚えておこう
Long-2,147,483,648~2,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乗)
数値
通貨型Currency-922,337,203,685,477.5808 ~
922,337,203,685,477.5807のの固定小数点数
数値
日付型Date日付:西暦100年1月1日~西暦9999年12月31日
時刻:0:00:00~23:59:59
日付
文字列型
*覚えておこう
String任意の長さの文字列(最大約20億文字)文字列
オブジェクト型Objectオブジェクト参照するデータ型オブジェクト
バリアント型
*覚えておこう
Variantすべてのデータ全てのデータ
データ型の種類
データ型を間違うとどうなる?
  • Variant(何でも型)を使うと意図してないデータ型でも堂々と返してくる
  • Long(整数)なのに文字列をいれると、違くない?と警告を返してくる

Dimとは?

ここで大体は変数とは何か?変数を定義するときにはデータ型も一緒に定義する必要がある。というのが、理解いただけたと思います。では、変数を定義するときに最初につけている「Dim」とは何なのでしょうか?

答えは、「Dimension=値」の略になり直訳すると意味不明化と思いますが、「Dim=変数を定義します!」のような宣言と理解しておけば大丈夫です。

(例)「Dim nomimono As String = 私はnomimonoを文字列として定義します!」

Din nomimono As String '宣誓!私は、nomimonoを文字列として宣言します!
nomimono = "cola" 'nomimonoの中には、"cola"を入れます!

最初に覚えておくべき定型文

初心者が最初の最初に絶対に覚えておくべき定型文がいくつか存在します。その中でも、コードがちゃんと意図した通りに動いているかを確認できる「Debug.Print」と、「Option Explicit」に関しては必ず覚えておきましょう。

この2つに関しての説明は下記の記事でしていますので、参考にしてください。

次のSTEP
Website | + posts

小売販売員からキャリアをスタートし日系&外資系大手企業と3度の転職を成功させ、超大手外資系IT企業でデジタルマーケティング関連職に従事。WEBコンサルティング会社を起業し、マーケットプレイスを中心とした業務代行とコンサルティング、業務効率化のソフトウェア販売を行っています。
保有資格:3級FP技能士、2種証券外務員、ITパスポート、GAIQ、Goole広告各種プロフェッショナル認定資格