変数比較結果のBoolean値を変数に代入を…っておおおお

C++でいうコレをしたくて *1

int a = 10;
int b = 20;

bool c = b == a; // ←これ

VB (VBA) で何も考えをなしに書いたところですね…


Dim a as Long
Dim b as Long
Dim c as Boolean

a = 10
b = 20

c = b = a ' !?

パット見じゃ比較だか代入だかわかんねぇよコレ

ちなみに、c = False になるようです。 c が Boolean だから a = b が比較だと判定できるって事なんだろうかと、c も Long にしてみたところ…


Dim a as Long
Dim b as Long
Dim c as Long

a = 10
b = 20

c = b = a ' c = 0

0 ってことは False値。 …ってことは、VBさんは 代入文を連続して書くってことは出来ないって事ですかね…

いじめてみた

Dim a as Long
Dim b as Long
Dim c as Long
Dim d as Long

a = 10
b = 20

d = c = b = a ' d = 0, c = 0, b = 20, a = 10
Dim a as Long
Dim b as Long
Dim c as Long
Dim d as Long

a = 10
b = 20
c = False ' Long に Boolean 代入してもイイデショー

d = c = b = a ' d = 0, c = 0, b = 20, a = 10
Dim a as Long
Dim b as Long
Dim c as Long
Dim d as Long

a = False
b = 20
c = 10

d = c = b = a ' d = -1,  c = 10, d = 20, a = 0 

d = ((c = b) = a) 扱い…だと…!?

*1:代入じゃなくて初期化じゃねーかっていう突っ込みはさておいて