SAK 図書館
VB 入門編3 - 演算子、比較演算子、論理演算子、is 関数
■演算子
・VB の基本演算子は、次のとおりである。
計算の優先順位は数学的で、() で計算順位を変更する。
= 代入
+ 加算
- 減算
* 掛け算
/ 割り算
mod 余り
^ 階乗
& 文字列結合
dim a as double
a = 1 '** a に 1 を代入
a = a + 1 '** 現在の a に 1 を加算
a = a - 1 '** 現在の a から 1 を減算
a = 1 + 2 * 4 '** 2 * 4 の結果 8 に 1 を加算
a = (1 + 2) * 4 '** 1 + 2 の結果 3 に 4 を乗算
a = 10 mod 3 '** 10 / 3 の余り、1 を求める
a = 2^8 '** 2 の 8 乗
dim s as string
s = "abc" & "def" '** "abc" と "def" を結合して、"abcdef" にする
・VB の基本数値計算は 2 進演算である。
従って、小数点以下を含む数値計算を行うと、微妙な誤差問題が発生する。
特に事務処理などの金額計算では 10 進演算になるように注意する。
10 進演算を VB6 で行うには、variant の cdec を使用する。
尚、10 進演算は、BCD 演算と呼ばれることもある。
dim total as variant
dim su1 as variant
dim su2 as variant
su1 = cdec(10000)
su2 = cdec(1.02)
total = cdec(su1 * su2)
■比較演算子
・VB の比較演算子は、次のとおりである。
= 等しい
<> 等しくない
> より小さい
>= より小さいか等しい
< より大きい
<= より大きいか等しい
and かつ
or または
dim a as double
a = 10
if a = 10 then '** a は 10 と等しい
if a <> 10 then '** a は 10 以外
if a > 10 then '** a は 10 より大きい
if a >= 10 then '** a は 10 と等しいか大きい
if a < 10 then '** a は 10 より小さい
if a <= 10 then '** a は 10 と等しいか小さい
if a = 10 or a = 20 then '** a は 10 か、20 と等しい
dim s as string
s = "abc"
if s = "abc" then '** s は "abc" と等しい
if s <> "" then '** s は空でない
if s > "aaa" then '** s は "aaa" より大きい
■論理演算子、ビット演算子
・VB の論理演算子は、次のとおりである。
ビット操作などに、よく使用する。
and 論理積
or 論理和
not 反転
xor 排他論理和
dim a as long
a = &H0f and &Hf3 '** 00001111B and 11110011B = 00000011B
a = &H0f or &Hf3 '** 00001111B or 11110011B = 11111111B
a = not &H0f '** not 00001111B = 11110000B
a = &H0f xor &Hf3 '** 00001111B xor 11110011B = 11111100B
・通常の integer、long 型では、byte 上位のビットが影響を受ける。
例えば、ビット反転では、次のように &HFF の and ビットマスクで、
byte 値にすると良い。
dim a as integer
a = &HC6
a = (Not a) And &HFF
msgbox a
■is 関数
・変数などの値を調べる is で始まる関数は、次のとおりである。
IsArray(変数) 配列か調べる
IsDate(変数) 日付か調べる
IsEmpty(変数) 使われているか調べる
IsNull(変数) NULL 値か調べる
IsNumeric(変数) 数値か調べる
IsObject(変数) オブシェクトか調べる
dim a as variant
a = 123
if IsNumeric(a) then '** a は数値
■VB 入門編資料
■VB 基礎編資料
■VB ビジュアル編資料
■VB テクニック編資料