- ベストアンサー
ユーザーフォームから
お世話になります。 ユーザーフォームにて、 オプションボタンでどれかを選択出来るようにし、 コマンドボタンで決定する様にしてあります。 選択した内容によりcallで別の標準モジュールに あるsubプロシージャに飛ばしたいのですが、 その記述方法が分かりません。 良くByvalの記述方法は見つかるのですが、 単純にsubプロシージャを実行したいだけなのです。 フォームの中に記述しても良いのですが、結構長くなって しまうので・・。 こういうやり方はおかしいのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
オプションボタンが3つあり、 オプションボタン1 で サブルーチンのTest1 オプションボタン2 で サブルーチンのTest2 オプションボタン3 で サブルーチンのTest3 を実行する場合のサンプル2つほど。 '---------その1 ------------------ Private Sub CommandButton1_Click() Select Case True Case OptionButton1.Value Call Test1 Case OptionButton2.Value Call Test2 Case OptionButton3.Value Call Test3 Case Else MsgBox "選択なし" End Select End Sub '---------- その2 -------------------- Private Sub CommandButton1_Click() If OptionButton1.Value Then Call Test1 ElseIf OptionButton2.Value Then Call Test2 ElseIf OptionButton3.Value Then Call Test3 Else MsgBox "選択なし" End If End Sub '----------------------------------------- 以上。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
バージョンが明示されていないのでVB6あたりとして。 > こういうやり方はおかしいのでしょうか。 フォームはインターフェイスだけ、実行部は標準モジュールに記述、は 私的には正しいと思います。 コマンドボタンのクリックイベントに記述すれば良いと思いますよ。 sub cmd実行_Click() '--------------------------- '実行ボタンがクリックされた '--------------------------- Dim str実行年月日 As String '実行に必要な条件を判断する。 str実行年月日 = txt対象年月日.Text if IsDate(str実行年月日) = False then MsgBox "実行年月日が不正です" Exit Sub end if '実行部を呼び出す Call プロシージャ名(str実行年月日) end sub 見たいな感じ
お礼
早速のご回答ありがとうございます。 参考になりました。
お礼
サンプルを2つも頂き誠にありがとうございます。 大変参考になりました。