VBAのInteger型変数でオーバーフローをしてしまった。
Cの一般的な整数型であるint型は32bit環境では4バイト。
しかし、VBAのInteger型は2バイト。
これまでCのintが4バイトだから
Integerも同じだろうと思い込んでいた。
C言語ではintと同じサイズのため使用されないlong intだが、
VBAではIntegerが2バイト、Longが4バイトとなっているため
格納したいデータのサイズによって使い分ける必要がある。
また、C言語では型宣言でUnsignedを付けることで
符号なしの変数を使用できるが、
VBAではUnsignedの指定そのものができない。
参考
VB.NET/VB6.0/CLR/C/C++/Win32API 型一覧表
VB研究所
0 件のコメント:
コメントを投稿