Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


74070 / 76611 ←次へ | 前へ→

【7011】変数の値が初期化されてしまう現象について
質問  ichinose  - 03/8/20(水) 9:33 -

引用なし
パスワード
   おはようございます。
「変数の値が初期化されてしまう現象について」、今までもこのサイトで幾たびか
話題に上がっていました。しかし、何が起因で変数が初期化されてしまうのかについては、情報が少なかったように思います。
Win98+Excel2000ですが、簡単なコードでこの現象が再現できました(再現できると思っている私)。

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=6970;id=excel

のご質問で回答をさせて頂いたのですが、
偶然にも同じようなコードを昨日作っていたところ、
標準モジュールに
'============================================
Public tes_data As Integer
'============================================
Sub main()
  Call add_chkbox(Range("a1"))
  tes_data = 5000
End Sub
'============================================
Function add_chkbox(rng As Range) As OLEObject
  With rng
    Set add_chkbox = _
      .Parent.OLEObjects.Add _
       (ClassType:="Forms.CommandButton.1", Link:=False, _
       DisplayAsIcon:=False, Left:=.Left, _
       Top:=.Top, Width:=.Width, _
       Height:=.Height)
    End With
End Function
'============================================================
と言うコードでMainを実行します(コマンドボタンは作成されますし、正常に何もなく終了します)。


次いで同じモジュール内にある以下のコードを実行すると、
'============================================================
Sub disp_data()
  MsgBox tes_data
End Sub

表示されるのは「0」です。「5000」のはずなのに・・・。
本来は、コントロール作成して、クラスモジュールにイベントコードを記述したかったのですが、「tes_data = 5000」の代わりにインスタンスを作成しても初期化されてしまいました。「フォーム」のボタンで代替しましたが・・・。

この現象について、「Win98+Excel2000だけど、こっちでは起こらない」とか、
「XPでは、起こらない」とか、「安心して!!(?)、バグだよ」とか
情報頂きたいのですが、よろしくお願いします。

524 hits

【7011】変数の値が初期化されてしまう現象について ichinose 03/8/20(水) 9:33 質問
【7012】こっちは出来たよ(98se+2002) つん 03/8/20(水) 10:06 発言
【7013】大うそつき野郎でした つん 03/8/20(水) 10:13 発言
【7015】Re:大うそつき野郎でした ichinose 03/8/20(水) 10:21 お礼
【7014】Re:こっちは出来たよ(98se+2002) ichinose 03/8/20(水) 10:17 お礼
【7016】Win2k/XP Office2k/xp すべて再現 こうちゃん 03/8/20(水) 11:48 発言
【7019】Re:Me Office2k でも0 BOTTA 03/8/20(水) 14:35 発言
【7027】Re:Me Office2k でも0 でれすけ 03/8/20(水) 16:29 発言
【7029】Re:変数の値が初期化されてしまう現象につい... MPUS 03/8/20(水) 16:33 回答
【7031】Re:変数の値が初期化されてしまう現象につい... ichinose 03/8/20(水) 18:21 お礼
【7032】Re:変数の値が初期化されてしまう現象につい... でれすけ 03/8/20(水) 19:38 発言
【7036】Re:変数の値が初期化されてしまう現象につい... ichinose 03/8/21(木) 0:00 お礼
【7059】いまごろ、結果だけ...。 Jaka 03/8/21(木) 13:13 発言
【7071】Re:いまごろ、結果だけ...。 ichinose 03/8/21(木) 17:34 回答

74070 / 76611 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free