Headline About TechLog Download Java VBA Link


July 4, 2007. Wednesday.

VBAのデータ型

VBAのプログラム中で扱うことの出来るデータ型には以下のような物が存在します。それぞれの型によって格納できる値が異なるため、用途に合わせて最適な物を選ぶこととなります。頻繁に利用するのはそのうちの一部ですのでご安心を。取り合えずは一応全部に目を通しておきましょう。


宣言型名プログラム初心者にとっての重要度
Byteバイト型使わない
Booleanブール型必須
Currency通貨型細かいお金を扱う時のみ必要
Integer整数型必須
Long倍精度整数型それなりに使う
Single単精度浮動小数点型Doubleを使えばよい
Double倍精度浮動小数点型時々使う
String文字列型必須
Date日付型日付を扱うときのみ使用
Objectオブジェクト型結果的には頻繁に使う
Valiantバリアント型便利で頻繁に使うが、本当は使わない方がよい



Byte型

※初心者の方は使わないので読まなくて良いです。Byte型はByteデータを格納する変数型です。例えば日本語は2バイトの文字なので、1文字はStringでは1文字ですが、Byte型では2byteのデータということになります。文字コードがわからないデータを通信先から読み込んだり、画像データを読み書きしたり、と言う場合にはこのByte型を使うことになります。他にもマニアックな使い方はありますが、このページを読んでいる人には不要な知識なので割愛します。




Boolean型

Booleanは真・偽を表すデータ型です。従ってBoolean型の変数にはTrueとFalseの2種類しか格納できません。これはプログラムの動作を制御したりする用途で頻繁に用います。プログラム言語の根幹をなす型なので必ず使います。使っていないように見えても、知らないうちに使っていることでしょう。




Currency型

※お金の計算をするとき以外は読まなくて良いです。Currency型はお金の計算を行う際に用いる型です。Doublleなどで大きな数や少数を扱うと、コンピュータのデータの扱い方の都合上誤差が発生します。Currency型ならその心配がありません。ただし、文字列の出力などにCurrency型の変数をそのまま使うと勝手に\(円マーク)がついたりと、細かい注意点が必要となりますので、用のない人は触る必要はありません。




Integer型

整数を扱うための型です。無しでは殆ど何も出来ません。頻出するので必ず覚えておいてください。ただし、あまり大きな桁数の数字は使えないので、その場合はLongを使うことになります。また、整数型なので当然少数を格納することは出来ません。




Long型

大きな整数を扱うための型です。その名の表すとおり、Integerより大きな桁数の整数が扱えます。かなり大きな数字を扱うな、と思ったらIntegerではなくLong型の変数を準備しましょう。別に小さな整数が格納できない訳じゃないので、常にLongしか使わないという手もありますが、古いプログラマには嫌われます。




Single型

※初心者は使いません。経験者だって使いません。精度が半分しかないDouble型です。つまり使えません。Singleを使いたい場面では常にDoubleを使えばよいです。




Double型

浮動小数点を扱うための型です。かなり小さな数やかなり大きな数を扱うことが出来ますが、Currencyと異なり、細かい部分が合うかどうかを保証しません。細かい話をするとbitによる数値表現を説明することとなるので割愛しますが、近似値を扱うための変数だと思っておけば安心です。




String型

文字列を扱うための型です。絶対に使います。必ず覚えておきましょう。仕様上は2GBの文字が格納できます。つまり現実的には無限の文字が格納できると思って良いです。PCの性能に依存しますけど。




Date型

日付を扱うための型です。日付の計算を楽にします。例えば、2007/07/01の一日前っていうと、6月は30までだから日を30にして月を1つ戻して、3/1から1日前なら2/28だけど、4年に1度は2/29だし....というような面倒なことを自動でやってくれる型です。つまり日付の計算を行なうときに使います。2007/07/01という文字列のまま使うだけなら要りません。




Object型

オブジェクトを格納する型です。オブジェクトって何よって人もいるかと思いますが。Objectの直訳は「物」です。まぁ、機能や性質を、まとめた物をあるObjectとして定義していると思えばよいでしょう。「自動車」というプログラムを作る際に、タイヤの数を格納するのがInteger型なら、「タイヤ」という物体の概念を格納するのがObject型です。正確な説明はここではしません。というかVBA初心者が深く理解する必要はないので、何かの機能を持ったObjectを格納しておいて、それを道具として呼び出す際に使うのだなぁ、ぐらいに覚えておいてください。




Valiant型

何でも格納できる型です。万能なのでいつでも使えます。Valiant型しか使わずにプログラムを組むことが可能です。が、家にある全ての調味料を同じ容器に入れるような物なので、「出来ればValiant型は使わない方がよい」と覚えておきましょう。と言いながらよく使ってしまいがちですけど。