VBA07_変数のデータ型_宣言は不要?必要?

Benです。文化の日ですが皆さまいかがお過ごしでしょうか。

私事になりますが、VBAを経験してプログラミングを習得してそれなりのWEBアプリやシステム開発をできるようになりました。自分の経験上VBAはVB系のプログラミングの入門に適していると思います。さて、今回は前回の変数のデータ型についてです。

データ型とは
前回、変数は入れ物やホワイトボードと表現しました。日常の入れ物もビジネスバッグや段ボール箱、液体を入れる水筒など様々なものがあります。変数にも形式があって整数だったり日付だったり様々な形式があります。これがデータ型です。

20151103_vba01.png

図のaは整数型、bは小数型とします。当然それぞれの型に合わせて値を代入したり計算したりします。ここでもし、a=bとするとどうなるでしょう? aには5.24を四捨五入して小数部が切り捨てられたが代入されます。

データ型概要値の例
Integer整数型-3 112
Long長整数型2506700
Single単精度浮動小数点数型3.1415
String文字列型Ben
Date日付型2015/10/15
Booleanブール型True False
Objectオブジェクト型(Worksheet)
Variantバリアント型何でも

私がよく使うデータ型を示しています。一般的な整数はInteger(インテジャー)、小数はSingleでたいてい大丈夫です。文字列や日付もよく使います。ブール型はYesかNoの判定やOn、Offの設定などに重宝します。オブジェクト型は、Worksheetなどをセットすると一つのワークシートで複数の処理をするときに便利です。最後の
バリアント型ですが、これは数値でも文字列でも何でも入ります・・・じゃあ、これ一つで良くない

20151103_vba02.gif

変数の定義例です。Dimを使います。整数型として変数iを定義しました。なので、3.6という小数を代入しても丸められて4で格納します。セルの値を変数に代入するのもこれからよく出てきますが、セル番地を間違って整数型に文字列を代入しようとしてエラーが出ます。そこで自分のコードが間違っていたことに気が付きます。バリアント型だと何でも入ってしまうのでエラーは出ません。

プログラムを作成するにあたって必ずと言っていいほど人間はミスをします。欠陥を早く見つけて治す(デバッグといいます)ためにも、バリアント型でなく代入ミスがすぐわかる整数型などに定義することをおススメします。メモリ効率やパフォーマンスもよくなるので、私は適正なデータ型指定はやはり大切だと思います。

次回のVBAは、演算子について復習したいと思います。

この記事へのコメント


この記事へのトラックバック