Excel VBA質問箱 IV

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

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


24064 / 76738 ←次へ | 前へ→

【58028】Re:ユーザーフォームでも反映される宣言について
発言  ichinose  - 08/9/28(日) 10:33 -

引用なし
パスワード
   ▼YOU さん:
>私の書いたコードは以下の通りです。標準モジュールが2つありますが、どちらからユーザーフォームにアクセスしたかによって、走らせるプログラムを切り替えようとしています。 どちらの標準モジュールかを判断させるためにSEETの変数で判断させています。どうぞ、よろしくお願いします。

ユーザーフォームのモジュールに宣言した
Public SEET As Variant


標準モジュール1の
Public SEET As Variant


標準モジュール2
Public SEET As Variant

これらの3つの変数は、名前が同じでも別の変数ですよ!!
これは、バグでもありません!!

従って、

標準モジュール1で

>SEET = 1
>UserForm1.Show 

のコードを実行して


ユーザーフォームで

If SEET = 1 Then

と記述しても、別の変数を参照しているのですから、

>標準モジュールで設定した変数の値を読み込んでいないようです

という結果になるのです。


>Public SEET As Variant
>Private Sub CommandButton1_Click() ’ユーザーフォーム
>If SEET = 1 Then
>Call load_np
>ElseIf SEET = 2 Then
>Call load_np2
>End If
>Unload Me
>End Sub

↑このコードをそのまま生かしましょう。


'Public SEET As Variant ←要りません 削除して
>Public Sub スタート()'標準モジュール1
with userform1
  .SEET = 1
  .Show
  end with 
>End Sub


>
'Public SEET As Variant ←要りません 削除して
>Public Sub スタート2()'標準モジュール2
 with userform1
  .SEET = 2
  .Show
  end with 
>End Sub


標準モジュールのコードを上記のように変更してください
3 hits

【58025】ユーザーフォームでも反映される宣言について YOU 08/9/28(日) 2:58 質問
【58026】Re:ユーザーフォームでも反映される宣言に... ichinose 08/9/28(日) 7:28 発言
【58027】Re:ユーザーフォームでも反映される宣言に... YOU 08/9/28(日) 10:04 質問
【58028】Re:ユーザーフォームでも反映される宣言に... ichinose 08/9/28(日) 10:33 発言
【58031】Re:ユーザーフォームでも反映される宣言に... YOU 08/9/28(日) 11:12 お礼

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