SAK 図書館
VB 基礎編 (その一) 数値計算、変数タイプ、演算子 dim、enum、vbCrLf
■VB の各種資料について VB 関連の各種資料は、Visual Basic 6.0、(VB6.0) を基本に書いています。 VB5.0 からの移行注意事項も一部記載しています。 ■数値計算 電卓と基本的に違うのが、パソ系は数値演算を 2 進演算でやると言うことで す。10 進演算、BCD 演算などと明記されてない場合は、すべて 2 進演算が使 用されています。 この場合、整数の演算においてはなんらの問題も出ないのですが、小数点を含 む演算において微妙な誤差が出て来ます。 (例: 0.01 を単精度変数に 10 回足すと、9.999999E-02 となって、0.1 には ならない。9.999999E-02 = 0.09999999) 【コツ1】 小数点同士の計算は行わない。 一度整数にした後、計算し、最後に少数に戻す。 但し、完全には回避できない場合があります。 dim a as long dim b as long dim c as double dim i as integer a = 0.01 * 100 b = 0 for i = 1 to 10 b = b + a next c = b / 100 【コツ2】 VB6 では、variant で 10 進数を保持できます。 cdec() をうまく利用すると、誤差のない数値計算が可能です。 ■変数タイプ integer 整数 (-32768 〜 32767) S9(04) long 整数 (-2147483648 〜 2147483647) S9(09) single 単精度 (-999999. 〜 999999.) S9(06). double 倍精度 (-9999999999999999. 〜 9999999999999999.) S9(16). 【浮動小数点】single と double タイプは浮動少数点を持つ。 ここで気をつけるのは、double の有効 16 桁を全て整数で使 用した場合の小数点以下はないと言うこと。 小数点以下 4 桁の精度を確保しようとすると、整数部分は 12 桁以下でなければならない。 boolean (BOOL 値 true か false のみ記憶可能) byte (1 バイト) X(01) string 文字 (1 〜 32767 文字) X(??) string *文字 (1 〜 32767 文字固定長) X(??) 【可変長文字変数】string は基本的に渡される文字の長さによって可変長の 長さを持つ。 dim a as string * 6 と長さを指定したときは、固定長文字変数となる。 currency 通貨型 (-922,337,203,685,477.5808 〜 922,337,203,685,477.5807) 【固定小数点】通貨型は、64 bits で記憶される整数部 15 桁、小数部 4 桁 固定の変数である。 ■列挙型 enum youbi sun = 0 mon = 1 tue = 2 wed = 3 thu = 4 fri = 5 sat = 6 end enum ■演算子 + 加算 - 減算 * 掛け算 / 割り算 \ 割り算(小数部切り捨て) 「a \ b = int (a / b)」 mod 余り VB6 では、「\」による切り捨て、round() 関数は数学的でない。 int() で独自にコーディングした方が良い。 ■エスケープシーケンス chr(10) ラインフィード vbLf chr(13) キャリッジリターン vbCr chr(13) & chr(10) 改行 vbCrLf chr(0) NULL 文字 vbNullString msgbox "abc" & chr(10) & "def" のように使用する。 ファイル等のいわゆる改行(CRLF) は、chr(13) & chr(10) である。 chr(13) & chr(10) に等しい vbCrLf と言う予約語もある。 C 言語の NULL 文字を現すには chr(0) を使用する。 Windows API に NULL パラメタを送るときは、ポインタの NULL なので、 vbNullString を使用する。 ■VB 基礎編資料
■VB 入門編資料
■VB ビジュアル編資料
■VB テクニック編資料