配列変数の代入が、
配列構造&データのコピーではなく、
『代入元[配列変数]への参照』の設定
になっている事が判明しました。
【大問題】 配列変数の代入はリンクだった!
http://blog.livedoor.jp/addinbox/archives/51261348.html
コード: 全て選択
Sub Main2
Dim vntArray(1 to 3) As Variant
Dim vntTemp As Variant
vntArray(1) = "ABCD"
vntArray(2) = "******"
vntArray(3) = 12345
vntTemp = vntArray
vntArray(1) = "XYZ"
MsgBox vntTemp(1)
End Sub
EXcel/VBA では、こういう事はありません。ちゃんと「配列構造&データのコピー」になっています。
今まで作って公開してきたマクロの数々。全部、見直す必要が出て来ました(号泣)
見直したところ、『 RefEdit 』が修正が必要でした。他のマクロは問題ありません。
検索キーワードが上手くないのか、ISSUE が今のところ見当たりません。
この問題、メガトン級の大問題だと思うのですが、既知なのでしょうか?
「開いてはいけない禁断の扉」を開けてしまった気がして、とっても鬱です _| ̄|○
C 言語とか、そっち方面で育った人にとっては、『配列って普通、そういうもんでしょ。何か変?』と
言われるかもしれないですね。
でも、VB(VBA)では『代入』動作ですから、
・ VB(VBA)で育った人にとっては、
・ VBAから OOo.Basic への移行を考えてる人にとっては、
【とっても変】です。