2007.05.18

VBAの数値型

最近私はEXCELマクロに数年ぶりに触れている訳ですが、
.Netにすっかり染まってしまったためかEXCELマクロ(VBA)の
落とし穴にほんの少し嵌ってしまいました。

何に嵌ってしまったかと言うと数値型です。
基本的にVB.Netで開発ではIntegerは9桁くらいの数値を格納
出来るのですが、VBAだと6桁(32767)以上入るとオーバーフロー
してしまい、落ちてしまいます。
では何なら対応できるのだろう?と調べた所次に
見つけたのがLong型((-)2147483647以内)、これならある程度の桁数を
格納出来るわけですが、Excel上の数値が思いのほか
膨らんでしまい、オーバーフローを起こす。
さらに少数点以下が表示されないという事実も発覚し
次に使ってみたのがCurrency型(通貨型)。
これなら整数15桁、小数点4桁の数値が入るとの事で、今回の
仕様に対応出来ました。

そもそも何故こんな初歩的なことを言ってるのだろうか
と自分でも思うのですが、.Netばかりで開発していると
データ型の認識が固まってしまい、こんな単純なことでも
嵌ってしまうのです。

日頃から色々な知識を身につけるのは大事ですね。

コメント (1)

・Integerは9桁くらいの数値を格納出来るのですが、

・VBAだと6桁(32767)以上入るとオーバーフローしてしまい

・見つけたのがLong型((-)2147483647以内)

・少数点以下が表示されないという事実も発覚し

・次に使ってみたのがCurrency型(通貨型)

>こんな単純なことでも嵌ってしまうのです。

単純なことではなくて「必要最低限の知識」でしょう。
これで「ITプロフェッショナル」?
ちょっと腹が立ってきた…。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
jin