• 締切済み

エクセルVBAオプションボタンの不具合

複数あるオプションボタンを選択時、一つだけでは無く二つ選択された状態になる(見た目のみ) 二つ目以降を選択すると、前回に選択したボタンの部分に残像が残ってる状態です。 ・ユーザーフォームではなく、ワークシート上に直接オプションボタンを配置 ・選択したボタンにより、リストからデータを引っ張ってきて、指定したセルに格納する式を組み込み済 ・選択したオブジェクトのみValueプロパティが'True'になっている(残像が残っている部分は'False') ・同じグループに入っている 以上です。 要はValue値にはTrueは一つしか入らないので、動作上は問題は無いのですが見た目だけが残像が残り気になる、といった所です。 ボタン選択時に値を引っ張る式が無ければ残像も出なくなるのですが、式が入っていると現象が起こる様です・・・。 何か解決策はありますでしょうか?よろしくお願い致します。

みんなの回答

  • Ce_faci
  • ベストアンサー率36% (46/127)
回答No.1

こんばんわ ボタン選択時に強制的に他のボタンをFALSEでOFFさせてみるのはいかがでしょう。 OptionButton1_Clickイベントにて SHEETS(1).OPTIONBUTTON2.VALUE=FALSE SHEETS(1).OPTIONBUTTON3.VALUE=FALSE あるいはプロシージャでグループ化をしてみるとか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel VBA オプションボタンについて

    こんばんは オプションボタンが5つあり、 登録ボタンが1つあるユーザーフォームを作りました。 このオプションにチェックを入れずに登録ボタンを押したときに 「必ず選択してください。」とメッセージを表示し、再度入力させるようにしたいのですが、どうしたらよいのでしょうか。 Excelのバージョンは2003です。 調べたところ (1)で動きそうだ。ということが判ったのですがチェックを入れ値がtrueになるとエラーが発生して止まってしまいます。(理由がわかりません) Private Sub commandbutton2_click() Dim opt As ControlFormat, flg As Boolean flg = False For Each opt In frame1.Controls If opt.Value = True Then '←ここの行でtrueだった場合のエラーが発生してしまう。 flg = True Selection.Value = opt.Caption End If Next Unload userform1 End Sub (2)この方法で何とか動いたのですが、初めの方に書いたとおり、オプションボタンが選択されずに登録ボタンが押された場合、チェックするように促すメッセージを表示する方法がわかりません。また、できればユーザーホームの×ボタンを押せなくする方法もしくは、閉じられた場合にマクロを抜けるようにするにはどうしたらよいのでしょうか。宜しくお願い致します。 Private Sub commandbutton1_click() Dim i As Integer For i = 1 To 5 If Me.Controls("optionbutton" & i).Value = True Then Selection.Value = Me.Controls("optionbutton" & i).Caption End If Next i Unload userform1 End Sub

  • エクセルVBAのオプションボタンがうまくいきません 

    エクセルのVBAでフォームをつくり 3つのオプションボタンを配置し チェックした項目のとき、指定したセルに「レ」の印を書き込ませたいのですが、うまくいきません。 同じフォーム内のテキストボックスやコンボボックスの内容はうまくセルに書き込めるのですが・・・ オプションボタンのグループは設定してあります。 下のように記述したのですが、なぜ思うように動作しないか教えてください。 If オプション(3) = True Then ActiveCell.Value = "レ" ElseIf オプション(1) = True Then Range("H21").Value = "レ" ElseIf オプション(2) = True Then Range("H23").Value = "レ" End If

  • Excel VBA オプションボタンについての質問です。

    Excel VBA オプションボタンについての質問です。 以下コードで実行時エラー424 オブジェクトが必要です。 が発生して困っています。 Private Sub AB_optionClick()  MsgBox OptionButton3.Value End sub オプションボタンの利用方法がいまいち理解出来ていません。 アドバイスよろしくお願いいたします。m(_ _)m

  • オプションボタンについて

    ※XPにも質問を載せてしまいました。 宜しくお願いします オプションボタンの分別は TRUE or FALSE になっていますが、例えば 有 or 無 みたいに自由に変更できる方法があるのでしょうか? 又、同一シートでは別の選択として使用は出来ないのでしょうか?別セルで作成しても、全部のオプションボタンに反映してしまいます。 お願いします。

  • トグルボタンをオプションボタンのように使いたい

    エクセルでマクロを作成しています。 見栄えを良くしようと手を入れているところです。 そこで今までオプションボタンで選択していた項目を トグルボタンでできないものかと考えています。 ボタンに画像が貼れる点が気に入っています。 1つのボタンを押してTrueにしたら他のボタンがFalse になるようにしたいのですが上手く行きません。 各ボタンのコードに他のボタンをFalseにするように書くと私にはわからない理由で全てのボタンがFalseになってしまいます。 良い方法をお教えください。

  • excel vba のオプションボタン 条件分岐

    ユーザーフォームに4つのオプションボタン(Opt1,Opt2,Opt3,Opt4)があり、一つも押さなかった場合に注意メッセージを出したいのですが、下記だとメッセージがでてくれません。 どのように修正すればいいか、ご教授頂ければ幸いです。 optボタンのプロパティ value は 4つとも false です。excel2000です。 If UserForm1.Opt1.Value = False And UserForm1.Opt2.Value = False And UserForm1.Opt3.Value = False And UserForm1.Opt4.Value = False Then MsgBox "いずれかを選んでください", vbExclamation, "区分を選んでください" End If

  • excelのVBAについてです。

    ユーザーフォームの中に10個以上のオプションボタンがあります。どのボタンが選択されているかを判定するのに if optionbutton1.value=true then ... else ... if optionbutton2.value=true then ... else ... ... ... のように、すべてのボタンに対してif then ステートメント記述しています。 この部分をもう少し簡単にできないかなというのが今回の質問です。教えてください。よろしくお願いします。

  • VBA オプションボタンの分類について

    http://okweb.jp/kotaeru.php3?q=1424026 でオプションボタンの表示に関して質問をした者です。 ボタンを自動作成する事はできたのですが例えば1日と15日に 休暇を取得した場合、ボタンが6つ表示されるのですが(1日分が3コ、15日分が3コ)、 この6つのボタンのうち1つしか選択ができません。 (2つ目を選択すると、前に入力していたものはチェックが外れる。) 日にちごとに、1つずつボタンを選択するようにするにはどうしたら良いのでしょうか? ちなみに、当該処理の今記述しているソースは以下のとおりです。 休暇情報の書き出しが終了するまでループで回しています。 ご教授ください。宜しくお願い致します。 '当日ボタン作成 Set objOLEToday = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _ DisplayAsIcon:=False, Left:=565, Top:=100 + objCnt, Width:=45.5, Height:=15.5) objOLEToday.Object.Caption = "当日" '事前ボタン作成 Set objOLEBefore = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _ DisplayAsIcon:=False, Left:=750, Top:=100 + objCnt, Width:=45.5, Height:=15.5) objOLEBefore.Object.Caption = "事前" '無断ボタン作成 Set objOLENotice = ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1", Link:=False, _ DisplayAsIcon:=False, Left:=920, Top:=100 + objCnt, Width:=45.5, Height:=15.5) objOLENotice.Object.Caption = "無断" '表示位置設定 objCnt = 405.4 + objCnt

  • オプションボタン

    宜しくお願いします オプションボタンの分別は TRUE or FALSE になっていますが、例えば 有 or 無 みたいに自由に変更できる方法があるのでしょうか? お願いします。

  • 【エクセル】オプションボタンにセルの値を反映させるには

    エクセルマクロ初心者です。教えてください。 シート2 の あるセルの値が A のとき シート1上の オプションボタン1がtrueになる。 シート2 の あるセルの値が A以外のとき シート1上の オプションボタン1がfalseになる。 (オプションボタン1はフォームコントロールのオプションボタンです。) という結果になるマクロの登録方法を模索していますがうまくいきません。 実際には、シート1は入力シートで、ボタンクリックで別の蓄積シートに転記(オプションボタンのほかコンボボックスなどの内容を転記します)。シート1上のリストボックスに蓄積シートの内容を表示し、選択するとその内容を呼び出すようにしたいのです。 コンボボックスやテキストボックスに呼び出すところまではなんとか本を見たりしてできたのですが、オプションボタンに呼び出せません。 なんとかお知恵をお借りしたいです。 よろしくおねがいします。 *下記のようにやってみました。 Private Sub commandbutton3_click() Dim n As Integer n = ListBox1.ListIndex If n = -1 Then MsgBox "選択してください" Else ComboBox2.Value = ListBox1.List(n, 0) ComboBox3.Value = ListBox1.List(n, 3) ComboBox4.Value = ListBox1.List(n, 4) ComboBox5.Value = ListBox1.List(n, 8) ComboBox6.Value = ListBox1.List(n, 9) ComboBox7.Value = ListBox1.List(n, 1) ComboBox8.Value = ListBox1.List(n, 2) TextBox3.Value = ListBox1.List(n, 10) End if ***********ここからがうまくいきません******** If Worksheets("入力シート").ListBox1.List(n, 6).Value = "A" Then OptionButton1.Value = True Else OptionButton("A").Value = False End If End Sub

専門家に質問してみよう