ExcelマクロVBA入門
第12回.変数とデータ型(Dim)

Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説
最終更新日:2019-06-03

第12回.変数とデータ型(Dim)


マクロVBA入門者が、まず最初につまずくのが、この変数でしょう、
変数とは、数値や文字列など(すなわちデータ)を一時的に格納する入れ物
と良く説明されますが、この考えで良いでしょう。


この入れ物には、いろいろなタイプの入れ物があります。

まあ、ザルもあれば、ダンボールもあれば、バケツもあればって事です。
当然、水をいれるなら、バケツですよね、
ザルに、水は入れられませんし、ダンボールにいれたら破けてしまいます。

同様に、変数にも、そのタイプによって、
入れられるものと、入れられないものがあります。
この入れ物(データ)のタイプ(型)をい、

データ型と言います。


データ型
データ型 名称 格納できる範囲
Integer 整数型 -32,768 ~ 32,767
Long 長整数型 -2,147,483,648 ~ 2,147,483,647
Single 単精度浮動小数点数型 -3.402823E38 ~ -1.401298E-45(負の値)
1.401298E-45 ~ 3.402823E38(正の値)
Double 倍精度浮動小数点数型 -1.79769313486232E308 ~ -4.94065645841247E-324(負の値)
4.94065645841247E-324 ~ 1.79769313486232E308(正の値)
Currency 通貨型 -922,337,203,685,477.5808 ~ 922,337,203,685,477.00
String 文字列型 最大約20億文字まで
Date 日付型 西暦100 年1月1日~西暦9999年12月31日までの日付と時刻
Boolean ブール型 真 (True) または偽 (False)
Object オブジェクト型 オブジェクト
Variant バリアント型 すべてのデータ

※これで全部ではありません。まだまだありますが、上記はよく使われるものだけです。
 BooleanまではVBAの基本型(プリミティブ型)になります。

まあ、今はまだ覚えなくても良いです。
最初に覚えるとしたら、

整数は、Long
少数は、Double
文字は、String

まずは、これくらいを覚えておけば十分でしょう。
マクロ(VBA)では、非常に便利なものがあって、
上記の表の一番下の、Variantは何でも入れる事が出来ます

そして、データ型を指定しないと、Variantになります。
つまり、データ型を指定しなければ、それで良いと言う事になります。
データ型は、もう少しマクロが上達してから覚えても遅くありません。
とはいえ、上に書いた、Long,Double,Stringくらいは覚えておきましょう。



変数の使い方

変数は宣言する
と言う言い方をします。
Dim 変数名 [As データ型]
これが宣言です。
[As データ型]の部分は、省略可能という意味です。
省略すれば、前記のVariant型になって、何でも入れる事が出来ます

ちなみに、Dimはdimensionの略ですが、その説明は割愛します、
興味のある人は、ネットで調べてみて下さい。

また、変数名は、1行に複数書く事が出来ます。
Dim 変数名 [As データ型], 変数名 [As データ型], ・・・
のように、,(カンマ)で区切って、複数の変数を1行に書く事が出来ます。



変数名の規則

・半角、全角の数字と文字を使えます
・変数名の長さは、半角で255文字以内(全角なら127文字以内)です。
・記号はアンダーバーのみ使用可能(ピリオドやスペースは使用できない
・1文字目は、数字、アンダーバー、記号を使用することができない
・VBAが意味を持たせている語句は使用できない

・大文字、小文字の区別がなく、同様に扱われる。


以上は最低限の決まりですが、これは普通に書けば大抵は問題ありません。

・VBAのステートメント、オブジェクト、プロパティ、メソッドは使用しない。
・なるべく入れるデータが容易に想像できる名称にする。

これらについては、今後学ぶものですので、今はそのようなものがあるのだと言う程度で構いません。



良く使われる変数名

変数名は慣習的に良く使われる命名があります。

Dim i, j, k

これらは、数値のみを扱い、かつ、行数のカウント等の場合に使用されることが多いです。

行数のカウントに使う変数は、このようにi,jで構いませんが、
その他の変数は、
使用目的がわかるような意味のある変数名を指定するようにしましょう。

また、データ型の略文字を先頭に付ける事も多く用いられます。

Dim intNo As Integer

これは、整数型のIntegerの略であるintを頭につけて、何かの整数の番号を入れる変数です。
と宣言している訳です。
このような変数名の付け方は、ハンガリアン記法と呼ばれます。
VBAを習い始めると、「変数」について学びます、変数に付ける名前を変数名と呼び、若干の規則はあるが、好きな名前を付けて良いと教わります。好きな名前って・・・ケイコ、ハルカ、アツコ・・・まあ、それでも良いけど、入れるデータが分かるような名前がよいですね、わかり易い名前を付けましょう。

先の、変数名の規則にもあったように、
全角の日本語も使用できます。

Dim lng行 As Long

これは、長整数型で、行番号を入れますよと宣言していますね。
日本語の変数名に関しては、賛否両論あるようですが、
現在のPC事情(ハード、ソフト両面での)を考えた時、
日本語の変数名の是非を論ずる事自体が無意味です。

解り易ければ、それで良いです。
それ以上でも、それ以下でもありません。

最初のうちは、書籍やネットで見かける変数を真似していけばよいでしょう。
少しずつ、自分でつけたい変数名が出来てくるものです。



変数宣言の必要性

変数はかならず宣言しましょう。

VBEのオプションで、「変数の宣言を強制する」にチェックを付けました。
マクロを書き始める前に、ちょっと設定しておいた方が良いオプションがあります。いえ、絶対に設定しておかなければならないオプション設定があります。「ツール」→「オプション」以下の画面が出ます。最初は、「自動構文チェック」には、チェック(レ点)が付いているので、外して下さい。
これにチェックを付けた以降に標準モジュール挿入すると、

Option Explicit

これが、標準モジュールの先頭に自動的に挿入されるようになります。
これは、変数は必ず宣言してから使います。
とエクセルに伝えたことになります。

これにより、変数を宣言しないで、いきなり使い始めると、
「変数宣言すると言ったのに、宣言してないぞー」
と、エクセルが怒ります。
エクセルに怒られないように、変数は必ず宣言して下さい。


変数は非常に奥深く、プログラミングの要点ともいえるものです。
少しずつじっくりと覚えて行って、ご自身で書きやすく読みやすい変数名を使うようにしてください。





同じテーマ「マクロVBA入門」の記事

Rangeでのセルの指定方法
Range以外の指定方法(Cells,Rows,Columns)
RangeとCellsの使い方
変数とデータ型(Dim)
定数と型宣言文字(Const)
文字の結合と継続行(&アンパサンド)
四則演算と注釈
繰り返し処理(For Next)
繰り返し処理(Do Loop)
最終行の取得(End,Rows.Count)
総合練習問題1

新着記事NEW ・・・新着記事一覧を見る

Withステートメントの実行速度と注意点|VBA技術解説(6月6日)
VBA+SeleniumBasicで検索順位チェッカー(改)|VBA技術解説(6月2日)
マクロでShift_JIS文字コードか判定する|VBA技術解説(6月1日)
Shift_JISのテキストファイルをUTF-8に一括変換|VBAサンプル集(5月31日)
「VBAによる解析シリーズその2 カッコ」をやってみた|エクセル(5月21日)
VBA+SeleniumBasicで検索順位チェッカー作成|VBA技術解説(5月18日)
テーブル操作のVBAコード(ListObject)|VBA入門(5月12日)
テーブル操作の概要(ListObject)|VBA入門(5月12日)
VBAのスクレイピングを簡単楽にしてくれるSelenium|VBA技術解説(5月6日)
Excelワークシート関数一覧(2010以降)|VBAリファレンス(4月22日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.ひらがな⇔カタカナの変換|エクセル基本操作
7.繰り返し処理(For Next)|ExcelマクロVBA入門
8.マクロって何?VBAって何?|ExcelマクロVBA入門
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄



  • >
  • >
  • >
  • 変数とデータ型(Dim)

    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。






    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ