• ベストアンサー

エクセルVBAでオプションボタンを無効にする方法

Wendy02の回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

merlionXX さん、こんばんは。Wendy02 です。 しばらく考えてみましたが、二つのロジックが考えられます。 (ちょっとお話がむつかしくなるかと思いますが) 最初に、そのオプションボタンを無効にするという、Range("A1")に、True/False を与えるものは、入力なのですか?式なのですか?それによって、設定が出来るような気がしています。式ですと、やっかいですね。それ自体には、イベントを発生させることはできませんので、常に、Now で Calculateイベントを発生させなくてはならなくなります。実用性が今ひとつ落ちます。 それから、もうひとつは、そのオプションボタンのイベントのコードは、OnAction ですね。だから、OnAction で、オプションボタンそのものを Enabled= False にするというのはできますが、それを、今度はEnabled =True と復帰する方法がなくなりますから、この選択はできませんが、少なくとも、OnAction で出力値そのものは、無効にすることが出来ますね。 どれか、ひとつで出来るはずです。この方法は、コントロールツール側でも、大きく変わることはないはずです。

関連するQ&A

  • エクセルVBAでフォームの無効化

    エクセル2000です。 ワークシート上に配置した、フォームのDropDown (コンボボックス)を一定の条件下で無効にしようと思い、下記のTEST1のようにやってみました。 Sub TEST1() ActiveSheet.Shapes.Range(Array("Drop Down 7", "Drop Down 8", "Drop Down 9")).Select Selection.Enabled = False End Sub うまくいきました。そこで Sub TEST2() ActiveSheet.Shapes.Range(Array("Drop Down 7", "Drop Down 8", "Drop Down 9")).Enabled = False End Sub のように書き換えたところ実行時エラーがでました。 下記のようにばらせばうまくいきますが、どうしてTEST2ではダメなのかわかりません。 ご教示ください。 Sub TEST3() With ActiveSheet .DropDowns("Drop Down 7").Enabled = False .DropDowns("Drop Down 8").Enabled = False .DropDowns("Drop Down 9").Enabled = False End With End Sub

  • エクセル2000と2007でボタン(フォーム)の認識が違って困っていま

    エクセル2000と2007でボタン(フォーム)の認識が違って困っています。 エクセル2007でシート内に設置したボタン(押したらマクロが実行されるように)をマクロで消したいと思い、「マクロの記録」にて以下のような記述で消すことができたのですが、これをエクセル2000(互換性にて)同じ事を行うとるすと、消そうするボタンが特定できず、、"Button 1"→"Button 10"と 変更すると消す事ができました。 ActiveSheet.Shapes("Button 1").Select Application.CutCopyMode = False Selection.Delete マクロでボタンやフォームを消す場合、はやり2000と2007とでは記述の仕方に違いがあるのでしょうか?できれば、どちらでも消せるようにしたいと思っております。 現状は2007用と2000用を別々にファイル作成しています。よろしくお願い致します。

  • エクセルVBA If Then 構文でOR条件の場合のVBA記述方法は?

    仮にセル("A1")が空白か Falseの場合は Then 以下のことをする。 と書きたいのですが If Sheets("Sheet1").Range("A1")="" Then ~略 If Sheets("Sheet1").Range("A1")=False Then ~略 と別々に記載する方法しかわかりません。 ワークシート関数のようにIF(OR(A1="",A1=False),~略)というようにまとめて記述するにはどう書けばいいのでしょうか? AND条件の場合も教えてください。よろしくお願いします。

  • エクセル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

  • エクセルVBA/フォームのオプションボタンを元に戻す

    ワークシート上に、フォームのオプションボタンが7個貼ってあります。 名前はOP1~OP7とします。 ある一定の条件に合致した場合、押されたオプションボタンがxlonになるのをキャンセルし、前にオンになっていたオプションを再度xlonにしたいのですが、Appication.Undoではエラーになってしまいました。 どうやったら前の状態に戻せるのでしょうか?

  • エクセル フィルタオプションについて

    教えて下さい。 sheet1~sheet3まであります。 【sheet1】と【sheet2】をフィルタオプション で検索条件範囲が【記号】部分で、 【sheet3】の結果になりますが、 VBAで、どのようにすれば良いのか わかりません。 Sheets("Sheet1").Range("A1:C3").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A3:C150"), Unique:=False Sheets("Sheet2").Range("A1:C6").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A3:C150"), Unique:=False End Sub このプログラムで実行するとSheet2の抽出しか できません。 何が足りないのでしょうか? 宜しくお願いします。 【sheet1】 A B C 品名 金額 記号 1 いちご 100 06-02 2 りんご 200 06-01 3 みかん 300 06-02 【sheet2】 A B C 品名 金額 記号 1 いちご 500 06-01 2 りんご 1000 06-01 3 みかん 1500 06-02 【sheet3】 A B C 1 記号 2 06-02 3 品名 金額 記号 4 いちご 100 06-02 5 みかん 300 06-02 6 みかん 1500 06-02

  • エクセルVBAマクロのオプションボタンについて

    オプションボタンのマクロに関して教えて下さい。 マクロのスキルレベルは、新しいマクロの記録を多用して、マクロを組むレベルです。 「表示-ツールバー-フォーム」から選ぶオプションボタンを使って、オプションボタンAが押されている場合とBが押されている場合で、処理を変えたいのですが、そのオプションボタンの値をどうやっても拾えません。 色々検索した結果、以下のマクロでできる気がしたのですが、駄目でした。 Private Sub OptionButton1_Click() オプション1 = True End Sub Private Sub OptionButton2_Click() オプション2 = True End Sub Sub オプションボタン() If オプション1 = True Then Range("a1") = 1 ElseIf オプション2 = True Then Range("a1") = 2 Else Range("a1") = 0 End If End Sub 作ったオプションボタンを右クリックしてマクロ登録を選ぶと、「オプション1_Click」となっているので、「OptionButton1_Click」を「オプション1_Click」に変えてみたのですが、やっぱり駄目でした。 ネットではユーザフォームを使ったマクロ例はあるのですが、そのまま使用するオプションボタンの例がありません。できればユーザフォームは使いたくありません。 ご存知の方がいらっしゃいましたら、教えて下さい。よろしくお願いします。

  • フォームの無効化

    Excel2002にてマクロを使用しています。 新規で作成したbookに フォームのボタンを2つ配置して 1を押すと2を無効化 2を押すと1を無効化 したいのですが、どうもうまくいきません。 Enabledプロパティみたいのを探しているんですが なぜか出てきません・・・ Visibleでやったら消えてしまいました・・・ 書き方としては ActiveSheet.Shapes("Button 1").・・・ でいいのでしょうか?

  • エクセル2000VBA コマンドボタンがうまく動きません

    こんにちは、VBA初心者です。 2枚のシートがあり、「入力」というシートの任意のセルを、「出力」という別シートにコピーするという作業をコマンドボタンによって行いたいと思っています。 自分で作ってみたものは、このようになります。 Private Sub 任意の行のコピー・印刷_Click() Application.ScreenUpdating = False 'セル内容コピー Selection.Copy Sheets("出力").Select Range("A9").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("入力").Select ActiveCell.Offset(0, 1).Select Application.CutCopyMode = False Selection.Copy Sheets("出力").Select Range("C9").Select (以下略) ところが、これだと 「実行時エラー1004 RangeクラスのSelectメソッドが失敗しました」と表示され、デバッグをかけると6行目のRange("A9").Selectが黄色く反転した状態になります。 どうしてでしょうか。 同じ内容のものをマクロで登録し、実行すると、何の問題もなく動くのですが… ほとほと困っております。 どうかよろしくお願いします。

  • VBA のオプションボタンって・・・

    教えて頂きたいのですが、 普通、オプションボタンってユーザーフォーム上に作成すると思いますが、訳があってsheet上に作りたいのです。 コントロールツールボックスで作成した直後はちゃんとマクロが走るのですが、一回セーブしてbookを閉じてからオプションボタンを押そうとするとマクロが走ってくれません。 自分で思うに、オプションボタンが画像として扱われている雰囲気がするのですが、ご存知の方がいらっしゃったら教えてください。よろしくお願い致します。