VBAの変数とは?使い方と代表的な型の解説
ExcelのVBAを使う上で、知っているとプログラミングの幅が広くなるものがあります。
それが今回紹介する「変数」です。
変数を使用すると複雑な指示を実現することができるのですが、意味を理解していないとネットでコードをコピペしても全く意味の分からにものになってしまいます。
そこでこの記事ではVBAの変数の使い方と型の種類を紹介します。
私がVBAを使い始めて最初につまずいてしまった『変数の型』についても紹介していきますので、この記事を読んで是非知識を高めていきましょう。
目次
VBAの変数の意味
変数とは、プログラムの中で使う値を入れておく箱のようなものです。
また、変数の中の値はプログラムの中で変更することも出来ます。
例えば『10』と設定していたものを、各計算を行うことで100に増え、それをメッセージで表示したいというように数や文字を変化させることができます。
文字だけで見るとうまくイメージがしにくいため、使い方の例を説明します。
VBAの変数の使い方
まずは変数がどの型なのか指定するため、変数を宣言します。
変数の宣言を指定する場合は以下の流れで記述します。
Dim 変数名 As データ型
型を指定した後は変数を使ったコードを記述します。
上記の画像では、メッセージボックスでA1のセルに入力されている文字が表示されます。
変数の型を使用するメリット
実は以下の画像のように変数の型を宣言しなくても動作することもよくあります。
型を指定しなくてもうまく動作することもありますが、型を指定することで以下のメリットがあります。
- データの使用メモリを減らすことができる
- 予期せぬエラーを防ぐ
- メンテンナンスがしやすい
データの使用メモリ削減
変数の宣言をしない場合は、通常バリアント型(Variant)と呼ばれる全ての値に対応する型が自動で適用されます。
何にでも適用されるというのは便利な反面、桁数の多い数字や日付、文字など何にでも応用できるよう使用するメモリが大きくなるデメリットがあります。
予期せぬエラー
私が実際に変数を使用しない場合に困ったのは「数値」と「文字」を自動でExcelが判別したため、思い通り計算式が当てはまらなかったことです。
変数で文字列や数値など指定しておくことで解決するのですが、Variant型が適用されることでマクロがうまく動作しませんでした。
メンテナンスがしやすい
変数の宣言は基本的にコードの最初に記述します。
これにより、VBAでコードを作成した以外の人が修正する場合や、数年後などにコードを編集する場合に「あれ?これは何の変数だった?」という問題を減らすことができます。
VBAの変数の型の代表的な種類
VBAには様々な変数の方が用意されていますが、ここでは代表的な型を紹介します。
今は全てを覚える必要はありませんので、まずはこういう種類があるんだなという程度に見て頂ければいいと思います。
データの型 | 使用メモリ | 格納できる値 |
ブール型(Boolean) | 2バイト | TrueまたはFalseのデータ |
バイト型(Byte) | 1バイト | 0~255の整数 |
整数型(Integer) | 2バイト | -32768~32767の整数 |
長整数型(Long) | 4バイト | -2147483648~2147483647の整数 |
通貨型(Currency) | 8バイト | -922337203685477.5808~
922337203685477.5807 |
単精度浮動小数点数型(Single) | 4バイト | -3.402823E38~-1.401298E-45(負の値)
1.401298E-45~3.402823E38(正の値) |
倍精度浮動小数点数型(Double) | 8バイト | -1.79769313486232E308~-4.94065645841247E-324(負の値)
4.94065645841247E-324~1.79769313486232E308(正の値) |
日付型(Date) | 8バイト | 西暦100年1月1日~西暦9999年12月31日の日付、時刻 |
文字列型(String) | 10バイト+文字数 | 文字のデータ |
オブジェクト型(オブジェクト) | 4バイト | オブジェクトを参照するデータ |
バリアント型(Variant) | 数値:16バイト
文字:22バイト+文字数 |
全ての値 |
まとめ
今回はVBAの変数の使い方と型の種類について紹介しました。
VBAを使いだして最初は変数が分かりにくいと思いますが、何度も使っていると何となく意味が分かってきます。
私の場合は「変数とは?」の意味を復習することと実際にコードを書くことを繰り返しながら行うことで、ある時「変数とはこういうことか」と点と点が繋がりました。
Excelの機能を使いこなすと、仕事の効率化から大きな時間短縮に繋がります。
仕事術のスキルが増えるとプライベートの時間を時間を増やすことができますので、当サイトで得た知識を是非活用していきましょう。
以下のExcel記事もおすすめです。