Excel VBA質問箱 IV

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

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


7272 / 13644 ツリー ←次へ | 前へ→

【40191】ユーザフォームのオプションボタン Hi 06/7/8(土) 8:50 質問[未読]
【40194】Re:ユーザフォームのオプションボタン ichinose 06/7/8(土) 10:19 発言[未読]
【40204】Re:ユーザフォームのオプションボタン Hi 06/7/8(土) 22:22 お礼[未読]

【40191】ユーザフォームのオプションボタン
質問  Hi  - 06/7/8(土) 8:50 -

引用なし
パスワード
   ユーザーフォーム上オプションボタンを8ケ作っています。
それぞれのボタンが押されたとき、Msgboxで表示したいのですが・・・

下のコードのClickを使うと8ケのコードになってしまいます。
Private Sub OptionButton5_Click()
  MsgBox "オプションボタンの 5 が選択されました"
End Sub

8ケのコードを1ケのコードに出来ないか・・・
変数を使いChangeで作成できないか検討してコードを書きましたが
上手く行きません。下のコードのどこが問題かアドバイスお願いします。
Private Sub OptionButton_Change()
Dim i As Integer
For i = 1 To 8
Select Case i
 Case 1 To 8
  MsgBox Controls("OptionButton" & i) & "が選択されました"
Next i
End Select
End Sub

【40194】Re:ユーザフォームのオプションボタン
発言  ichinose  - 06/7/8(土) 10:19 -

引用なし
パスワード
   ▼Hi さん:
おはようございます。

>ユーザーフォーム上オプションボタンを8ケ作っています。
>それぞれのボタンが押されたとき、Msgboxで表示したいのですが・・・
>
>下のコードのClickを使うと8ケのコードになってしまいます。
>Private Sub OptionButton5_Click()
>  MsgBox "オプションボタンの 5 が選択されました"
>End Sub
>
>8ケのコードを1ケのコードに出来ないか・・・
>変数を使いChangeで作成できないか検討してコードを書きましたが
>上手く行きません。下のコードのどこが問題かアドバイスお願いします。

下のコードで

オプションボタンの選択を変えたときに

  「xxが選択されました」

とメッセージが表示されない

ということですか?
それは、そうでしょうねえ!!
「OptionButton_Change」
というイベントはオプションボタンにはありませんから、
オプションボタンの変更で下のコードは実行されません。

>Private Sub OptionButton_Change()
> Dim i As Integer
> For i = 1 To 8
>Select Case i
> Case 1 To 8
>  MsgBox Controls("OptionButton" & i) & "が選択されました"
> Next i
>End Select
>End Sub


対処1
クラスモジュールを使用する方法です。
過去ログを「クラスモジュール」で調べて見てください。

対処2

仕様を変更する。
「オプションボタンを変更した時点でメッセージを表示するのではなく、
オプションボタンを変更し、コマンドボタンをクリックした時点で
メッセージを表示する に変更する」
という方法です。
これなら、

コマンドボタン(Commandbutton1)を配置すれば、

Private Sub CommandButton1_Click()
  Dim i As Long
  For i = 1 To 8
   If Controls("optionbutton" & i).Value Then
     MsgBox i & "が選択されました"
     Exit For
     End If
   Next
End Sub

こんなコードで可能です。

検討してみて下さい

【40204】Re:ユーザフォームのオプションボタン
お礼  Hi  - 06/7/8(土) 22:22 -

引用なし
パスワード
   ▼ichinose さん:

今晩は。
早速ご解答ありがとう御座います。
UserFormで
Private Sub OptionButton1_Change()
がでてきたので、使用できるかと思ってやりました。

アドバイスと解答ありがとう御座いました。
よく分かりました。今後ともよろしくお願いします。

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