こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA マルチページにまたがるグループ化

2ページ以上のマルチページに配置したオプションボタンをグループ化する方法を教えて下さい。

投稿日時 - 2018-06-20 13:05:12

QNo.9510195

すぐに回答ほしいです

質問者が選んだベストアンサー

ページをまたがってのグループ化はできないようなので
当該のページ以外のオプションボタンを全てOffにしました。
Private Sub OptionButton1_Click()
  Call Opt_Off(OptionButton2.Parent.Name)
End Sub
Private Sub OptionButton2_Click()
  Call Opt_Off(OptionButton2.Parent.Name)
End Sub
Private Sub OptionButton3_Click()
  Call Opt_Off(OptionButton3.Parent.Name)
End Sub
Private Sub OptionButton4_Click()
  Call Opt_Off(OptionButton4.Parent.Name)
End Sub
Private Sub Opt_Off(pName)
  Dim obj As Control, i As Long
  For i = 0 To Me.MultiPage1.Count - 1
    For Each obj In Me.MultiPage1(i).Controls
      If obj.Parent.Name <> pName Then
        If TypeName(obj) = "OptionButton" Then
          obj.Value = False
        End If
      End If
    Next
  Next
End Sub

投稿日時 - 2018-06-21 11:18:04

お礼

コードまで教えていただき、ありがとうございます。

考え方を理解しました。

投稿日時 - 2018-06-22 08:07:40

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

VBAはエクセルVBAかアクセスVBAか?
エクセルVBAとした場合、1つのユーザーフォームにMultiPageコントロールを1つ貼り付けて(MultiPage1とMultiPage2がでる)、考えるのか、大切な事を質問の記述に漏らさないこと。
ーー
その場合オプションボタンの番号は、MultiPage1からMultiPage2に
通して、連続して、振られるようだ。
質問者は、グループ化は何で(どういう方法で)やっているのか?
MultiPage1とMultiPage2の、それぞれの中では、何もしないでも、排他性(唯一性)は実行されるようだから、
・MultiPage2のボタン(オプションボタンのこと。以下同様)を、クリックされたときにMultiPage1のボタンの状態(Value)をOFF(False)にする。
・MultiPage1のボタンを、クリックされたときにMultiPage2のボタンをOFFにする。
をプログラムで組み込んないとならないのではないか。
ーー
MultiPage1とMultiPage2の各ボタンのグループ名を同じにすれば、排他的になるかどうか、やってみたが、ならないようだ。
ーー
MultiPage1にダミーのボタンを1つ増やして、非表示(Visible=False)にして、MultiPage2のボタンと連動させてみたが、複雑になるようなのであきらめた。

投稿日時 - 2018-06-21 21:22:30

お礼

ありがとうございます。
考え方を理解しました。

投稿日時 - 2018-06-22 08:09:20

ANo.3

No2です。Accessでのタブコントロールと判断していましたが、
もし、Excelでのマルチページでしたら、オプションボタンの
ボタン名をOp1、Op2・・・のようにして、クリック時の処理を
標準モジュールに設定し、この処理を各オプションボタンの
クリック時のイベントで標準モジュールのコードを呼び出し、
オプションボタン別の処理を行えばいいのでは、と思います。

投稿日時 - 2018-06-20 18:12:00

お礼

ありがとうございます。
複数のページに配置されたオプションボタンをグループ化することはできないと理解しました。

投稿日時 - 2018-06-22 08:05:56

ANo.2

オプションボタンがそぞれぞれのタブコントロールで
オプショングループコントロールの中に設定してあるのか、
あるいはタブコントロールの中にオプショングループを
設定せずにオプションボタンが設定してあるのかによって
異なります。

さらに、オプショングループが連結なのか非連結なのかに
よって設定が異なります。


そのあたりはどうですか?

なお、オプショングループをそれぞれのタブコントロール
に設定した場合はオプショングループ名はそれぞれの固有の名前に
なります。

投稿日時 - 2018-06-20 17:39:34

ANo.1

ActiveXコントロールのオプションボタンであれば、
それぞれのオプションボタンに設定する
GroupNameを統一することで
グループ化されると思います。

投稿日時 - 2018-06-20 15:34:25

お礼

ありがとうございます。
最初にこのやり方を試みましたが、グループ化されませんでした。

投稿日時 - 2018-06-22 08:03:19

あなたにオススメの質問