ACCESS VBA変数のデータ型

VBA変数のデータ型

ACCESS VBAでは変数を利用します。

この変数には、定義時にデータ型を宣言します。

変数のデータ型の種類とその特徴についてご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。

変数の種類

ACCESS VBAでよく利用する変数は以下です。

これくらいを覚えておけば大体のプログラムを作成するのに困らないでしょう。

データ型宣言時のデータ型名特徴
文字列型String文字列を格納できる
長整数型Long整数のみ格納できる
単精度浮動小数点型Single小数を含めた数値を格納できる
倍精度浮動小数点型Double単精度浮動小数点型よりも、有効桁数の多い小数を格納できる
通貨型Currency数値を通貨として格納できる
日付型Date日付・時間を格納できる
ブール型BooleanTrue か False のみ格納できる
オブジェクト型ObjectVBAで扱うことができる様々なオブジェクト(テーブル、クエリ、フォーム)や外部のファイルを格納できる

変数の使い方

VBAで変数を使用する際には、最初に宣言が必要です。

変数の宣言は以下の方法で行います。

モジュール / プロシージャレベル変数

特定のモジュール、もしくはプロシージャ内でのみ利用可能な変数の宣言方法です。

Dimを使用します。


 Dim 変数 As データ型

宣言する際は、対象のモジュールの宣言セクションもしくはプロシージャ内に記載します。

この宣言方法ですと、他のモジュールやプロシージャからは変数を参照できないので注意してください。

上記の例では、変数「aaa」はモジュールの宣言セクション(特定のプロシージャ内ではなくモジュールの一番上)で宣言しているため、本モジュール内では複数のプロシージャで共有して利用できるモジュールレベル変数です。

一方、変数「bunki」はプロシージャ「debug_print」内で宣言しているので、このプロシージャ内でしか利用できない、プロシージャレベル変数です。

モジュール、プロシージャについて詳しく知りたい方は下記の記事をご覧ください。

ACCESS VBAとは

パブリック変数

一方、複数のモジュール間で共有して利用したい変数の場合は、パブリックレベル変数として宣言します。

宣言方法は以下です。


 Public 変数 As データ型

パブリック変数を宣言する場合は、標準モジュールの宣言セクションにて宣言する必要があります。

標準モジュールとは、特定のフォームやレポートに依存しないモジュールです。

VBEのツリー画面の下の方に表示されます。

標準モジュールが追加されていない場合は、メニューから「挿入」→「標準モジュール」を選択することで追加できます。

変数の使い分け

ACCESS VBAで変数を利用する際にはコツがあります。

以下、いくつか記載します。

数値を利用する際は小数の有無で判断する

数値を格納する変数では、少数が入る可能性があるか否かが非常に重要です。

小数が絶対に入らないのであればLong、入る可能性があればDoubleにしておくのが良いでしょう。

わざわざ使い分けるのが面倒なので、すべての変数をDoubleにすればよいのでは?と思うかもしれません。

しかし、Double型はLong型よりも消費するデータ量が多いため、多用すると処理速度の低下を招いてしまいます。

データ型は格納するデータに合わせて最適(できるだけデータ量が小さくて済むもの)を選ぶとよいでしょう。

整数の場合はIntergerよりもLong

先の説明では、整数のデータ型としてLongしか紹介してません。

実はLong以外にも整数を格納する変数として、IntegerとLongLongがあります。

Integerは古くからある変数のデータ型でLongよりも桁数の小さい数値を格納することが可能です。

日本語ですとIntegerが整数型で、Longが長整数型と呼ばれます。

先ほどの説明の通り、Integerの方が消費するデータ量は少ないのですが、現在のPC環境ではLongを使用してもそれほど変化がないほどPCスペックが向上しています。

Integerを利用して、のちに数値の桁数が足りない、ということを防ぐために整数の場合はIntegerを使用せずにデフォルトでLongを使用した方が良いでしょう。

LongLongは避けた方が無難

一方、LongLongは64bit以降のACCESSで使用できる、比較的新しいデータ型です。

こちらはLongよりも桁数の大きい整数を格納できます。

となると、LongよりもLongLongを使った方が便利なのでは?と思うかもしれません。

しかし、longlong型は32bitのPCやACCESSでは使用できないため、エラーになってしまうのです。

PCによっては32bitで使わる可能性がある環境では、Longを使っておく方が無難でしょう。

以上、VBA変数のデータ型についてご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。