• 締切済み
  • 困ってます

Excelの「OptionButton」について

Excelで新しいシートを開き、VBE画面でユーザーフォームを挿入し、そのフォームにOptionButton1とOptionButton2を配置しました。OptionButton1,2のControlSourceをそれぞれA1、A2にしOptionButton1のValueをTrueにします。 この状態でフォームを表示し最初にOptionButton2をクリックすると両方のオプションボタンがOffになってしまいます。フォームを表示したまま2回目からのクリックではOn、Offがうまく切り替わります。ControlSourceをセットしなければ1回目のクリックでもうまく切り替わるみたいです。作り方がおかしいのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数286
  • ありがとう数3

みんなの回答

  • 回答No.1
noname#420
noname#420

私も上記質問内容について試しましたが、同じような現象になりました。おそらくこの現象は下記URLのEXCEL97の仕様に準じていると思います。(下記URLはVBE上のフォームコントロールの現象例ではありませんが。)

参考URL:
http://www.microsoft.com/japan/support/kb/articles/J027/2/87.htm

共感・感謝の気持ちを伝えよう!

質問者からのお礼

コメントありがとうございます。参考URLを見ました。やはりバグ(仕様?(^^;)ということなんでしょうね・・・。 他にも、複数のボタンを作成すると、全部[true]になってしまうケースもあるんですよ・・・。(再現が難しいので質問には書きませんでした)問題の完全解決にはなりませんでしたが、大変参考になりました。

関連するQ&A

  • エクセル のOptionButton

    エクセルでコントロールツールボックスの OptionButton で OptionButton1 と OptionButton2 を一つのグループで OptionButton3 と OptionButton4 を一つのグループにすることはできますか? OptionButtonを4つ出すと 全てがグループになってしまって 分けたいのです。

  • Optionbuttonを独立して使用するには

    さっそくですが 質問です 今回はOptionButtonをパソコンの電源ランプの様に 単なる表示として使用したいのですが可能でしょうか? OptionButtonをフォーム2つ貼り付けたとします (OptionButton1, OptionBUtton2) 通常ですと 画面上でOptionButton1をクリックすると OptionButton1が選択の状態になりOptionButton2が非選択 の状態になるかと思います この動作を次のようにできないでしょうか? 1 OptionButton1が非選択の状態でクリックしても 選択の状態にならない 2 OptionButton1及び2を同時に選択の状態にする よろしくお願いします 環境 WindowsXP SP2 VisualBasic6.0 SP6

  • Excel VBA OptionButton

    Excel VBAのOptionButtonについてお伺いします。 現在、Excel2007にてユーザーフォームを作成しております。 シート上の文字によって、ユーザーフォーム上のオプションボタンの ON/OFFを切り替えたいのですがうまく動作しません。 具体的には・・・・ ユーザフォーム上のCommandButton1を押下すると、 sheet2のE22セルの文字がTRUEの場合、ユーザーフォーム上の OptionButton1がON・OptionButton2がOFF sheet2のE22セルの文字がFALSEの場合、ユーザーフォーム上の OptionButton1がOFF・OptionButton2がON 以下のように考えていたのですが、動作しません。 ------------------------------ Private Sub CommandButton1_Click() If sheet2.Range("E22").Value = "TRUE" Then OptionButton1.Value = True ElseIf sheet2.Range("E22").Value = "FALSE" Then OptionButton2.Value = True End If ------------------------------ お知恵お借りしたく存じます。 宜しくお願い致します。

  • エクセル OptionButton

    FromにOptionButtonを貼り付けてセルの値を呼び出してFromのTextBoxなどに表示させるものを作成して上手くいっていましたが・・・・・ OptionButton1をクリックしたらSheetのセルに”男”と記載される マクロを作成しました。(以下の通りです) If オプション事故 = True Then SH2.Cells(lngNumber, 6) = "男" ElseIf OptionButton1 = True Then SH2.Cells(lngNumber, 6) = "男" ElseIf OptionButton2 = True Then SH2.Cells(lngNumber, 6) = "女" End If 今回困っているのはこれの逆で、セルの値が”男”なら OptionButton1にマークが付くようにしたいのですが こんなことできますか?下記のようにしてみましたができません! If SH1.Cells(lngNumber, 6) = "男" Then OptionButton1.Value = True ElseIf SH1.Cells(lngNumber, 6) = "女" Then OptionButton2.Value = True End If すいません教えて下さい!!

  • VBA EXCEL optionbuttonの選択

    現在オプションボタンにて設定下記のようにしています。 オプションボタンをいくつか設置しており、どれか選択すると下記のコードへ飛んできます。 どれか選択すると、enabledをtrueにし、OKボタンをクリックできる。そしてどのオプション ボタンを選択したのか他のモジュールから確認する為tagにその痕跡を残すように設定しています。 Public Sub OptionButton1_Click() 'オプションボタン選択動作。OKボタンを有効へ Cmd_ok.Enabled = True OptionButton1.Tag = True End Sub Public Sub OptionButton2_Click() 'オプションボタン選択動作。OKボタンを有効へ Cmd_ok.Enabled = True OptionButton2.Tag = True End Sub Public Sub OptionButton3_Click() 'オプションボタン選択動作。OKボタンを有効へ Cmd_ok.Enabled = True OptionButton3.Tag = True End Sub ****************** そして下記のコードでどのオプションボタンが選択されたのか確認しています。 For i = 1 To 3 If UserForm1.Controls("OptionButton" & i).Tag = True Then xxx = i End If Next i ******************** 一番上にある『OptionButton1.Tag = True』と設定しているものを選択されたオプションボタン からみて相対的な表現に変更できないでしょうか? 意味としては『現在選択されているオプションボタンのtag = true』といった表現です。 現状でも目的は果たせますが、これからボタンが複数になった場合、オプションボタンのオブジェクト名を変更しなくなった時に手間がしないようにする事が目的です。 もしくはもっとスマートなコードがあれば歓迎です。 ご指導お願いします。

  • エクセル VBA OptionButtonからTextBox

    すいません! OptionButtonなら 下記の記述でエラー表示を 簡単にできるのですが これがOptionButtonではなく TextBoxならどのように変化したら 良いのでしょうか? すいません、教えて下さい! Private Sub 記録_Click() Dim i As Integer Dim Cnt As Integer Cnt = 0 For i = 1 To 6 Step 1 If Me.Controls("OptionButton" & i).Value Then Cnt = i Exit For End If Next i If Cnt = 0 Then MsgBox "選択されていません" Exit Sub End If If Me.Controls("Combobox" & Cnt).Value = "" Then MsgBox Me.Controls("OptionButton" & Cnt).Caption & " の内容が選択されていません" Exit Sub End If With 記入フォーム .TextBox5.Value = Me.Controls("OptionButton" & Cnt).Caption .TextBox6.Value = Me.Controls("Combobox" & Cnt).Value End With Unload Me End Sub

  • VBからExcelのOptionButtonを操作する方法

    お世話になります。 いろいろ調べたのですが、答えを見つけられなかったので、質問させていただきます。 --環境-- OS Windows2000 VB 6.0 Office 2000 --目的-- Excelに貼り付けたOptionButtonチェックのON/OFFをVBから操作する。 関係ないことですが、OptionButtonを選択したときに出る OptionButton1=EMBED("Forms.OptionButton.1","") の意味も良くわかりません。 説明不足な点がありましたら、教えて下さい。 ヒントとなることでも結構ですので、宜しくお願いします。

  • エクセル マクロ オプションボタン

    エクセル上にユーザーフォーム1を作り OptionButton1~4作成 Captionには OptionButton1)あ OptionButton2)い OptionButton3)う OptionButton4)え と名前を付けてOptionButton1をクリックすると TextBox1に”あ”と表示するようにしたいです! お願いします! 教えて下さい。 {宣言は何?} Dim i As Integer Dim s1 As String For i = 1 To 3 Step 1 s1 = Me.Controls("OptionButton" & i).Caption If Me.Controls("optionbutton" & i) = True Then With UserForm1 .TextBox1.Value = s1 End With End If Next i End Sub 上記の記述では無理でした! 教えて下さい。

  • Excel2010のOptionButton1

    Excel2010のOptionButton1を、ActiveXコントロールで添付ファイルのようにシート上に、排他ボタンとしてつくりました。この「●横 ○縦」の入力値を読み取り、マクロを実行させたいと思っています。 たとえば、 「●横 ○縦」(横が選ばれている状態:True) ---> 「DO1」 「○横 ●縦」(横が選ばれていない状態:False) ---> 「DO2」 という具合です。「ControlSource」で設定値をセルに書き出して、それを読みこむように しても「例外エラー」が出たりして、お手上げです。 よろしくお願いいたします。

  • エクセルでユーザーフォーム

    エクセルでユーザーフォームやActiveXコントロールを使ったことがないので悩んでいます。ユーザーフォームを呼び出したとき、表示されるオプションボタンの状態をワークシート上の値で設定したいのです。一応以下のようなコードでも大丈夫なようです。 質問は、以下のようにすべてのオプションボタンを列挙しなくとももっと簡単に記述する方法を教えていただきたいのです。また書き方が変だというご指摘があればそれもよろしくお願いします。 Private Sub UserForm_Initialize()   Select Case Sheets("Sheet1").Range("L3").Value     Case 1: Me.OptionButton1.Value = True     Case 2: Me.OptionButton2.Value = True     Case 3: Me.OptionButton3.Value = True     Case 4: Me.OptionButton4.Value = True     Case 5: Me.OptionButton5.Value = True     Case 6: Me.OptionButton6.Value = True     Case Else      Me.OptionButton1.Value = False      Me.OptionButton2.Value = False      Me.OptionButton3.Value = False      Me.OptionButton4.Value = False      Me.OptionButton5.Value = False      Me.OptionButton6.Value = False   End Select End Sub

専門家に質問してみよう