• ベストアンサー

フォームコントロールのボタン設定

ExcelのVBAで、ActiveX コントロールのボタンは、 CommandButton1.Enabled=False のようにして押せなくできますが、 フォームコントロールのボタンの場合でも、押せなくなる設定をすることは可能ですか?

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

フォームコントロールでは細かい設定はできないので、同じ事はできません。

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

その他の回答 (1)

回答No.2

次のような内容で処理するほかないと思います。 1.登録するマクロを、クリック実行をカウントしておき指定回数になったら実行しないで即終了するように記述します。 --------- Dim cnt Sub Test() If cnt = 3 Then Exit Sub cnt = cnt + 1 MsgBox "Click" End Sub --------- 2.ボタンに登録されたマクロを解除します。 --------- Sub Test2() ActiveSheet.Buttons(1).OnAction = "" End Sub ---------

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

関連するQ&A

  • ActiveXコントロールのオプションボタン

    エクセルでユーザーフォームにActiveXコントロールのオプションボタンを設置してあります。このすべてのオプションボタンをいっぺんにオフにするにはVBAをどのように書いたらよいでしょうか? For~Nextでひとつづつ.Value = Falseにする方法はわかりますが、全部を一度にFalseにする虫のいい方法をご教示いただければ幸いです。 よろしくお願いします。

  • vbaで、フォームコントロールを挿入する方法

    vbaで、フォームコントロールを挿入する方法 エクセル2007を使っています。 最近、vbaを始めたのですがわからない事があります。 開発→挿入→挿入→フォームコントロールで、 オプションボタンやチェックボックスを、 vbaで挿入したいのですが可能でしょうか? 例えば、フォームコントロールのボタンを押しただけで オプションボタンを6つ挿入するなどです。 ActiveXコントロールでは、可能とどこかのサイトで見たのですが、 どうしてもフォームコントロールの方を使いたいの…。 よろしくお願いします。

  • エクセルVBA フォーム内のコマンドボタンを有効にする

    お世話になります。 少々わかりにくいのですが、言葉で説明します。 エクセルVBAで、フォームを作成します。 UserForm1にFrameが2つあり、OptionButtonがそれぞれ2つずつフレームに入っています。(つまり、4つ中2つ選択する必要がある) フォームが読み込まれた時点ではCommandButton.Enebled=Falseにしておいて、フレーム内のオプションボタンがそれぞれ1つずつ選択された場合に初めてCommandButton.Enebled=trueになるようにしたいと思いますが、どのように記述したら実現されるのでしょうか。 わかりにくい説明でしたが、宜しくお願いします。

  • 複数のユーザーフォームに対して特定のボタンを非表示

    エクセルのBOOKにユーザーフォームが8つあります。それぞれに複数のCommandButtonやComboBoxなどのコントロールが配置されています。そのうちのいくつかのユーザーフォーム上にTESTというCaptionを持つCommandButtonがあります。(CommandButton1のときもあればCommandButton2の場合もあります。)このCommandButtonをすべて非表示としたい場合、それぞれのユーザーフォームに対してPrivate Sub UserForm_Initialize()で該当するコントロールを.Visible = Falseにすればいいのはわかります。 質問は、もっと簡単に非表示とする方法があればご教示いただきたいのです。よろしくお願いいたします。

  • エクセルVBAでフォームのボタンとコントロールツールボックスのコマンドボタン

    エクセルVBAでフォームのボタンとコントロールツールボックスのコマンドボタンについて教えてください。 実はこれまでフォームしか使ったことがないのですが、フォームのボタンですと、下記のように一つのプロシージャを多数のボタンから呼び出し、呼び出したボタンにより異なった指示が出来ます。 Sub test() x = Application.Caller Select Case x Case "ボタン 1" MsgBox 1 Case "ボタン 2" MsgBox 2 Case "ボタン 3" MsgBox 3 Case "ボタン 4" MsgBox 4 End Select End Sub コントロールツールボックスは Private Sub CommandButton1_Click() MsgBox 1 End Sub Private Sub CommandButton2_Click() MsgBox 2 End Sub のようにコマンドボタンごとにひとつずつ書くしかないのでしょうか?

  • マクロのVBAでオプションボタンの一括False

    いつもお世話になっております。 エクセルマクロのVBAでオプションボタンの、Enabledを一括してFalseにしたいのですが、 可能でしょか。 ひとつづつ31個設定でもできるとは、思いますが、for文でまわして設定や、簡単に一括してFalseにする方法がありましたら、お教え頂きたいです。 オプションボタンは、日にち分、1日から31日分あり、フォームに貼り付けた状態です。 以上、よろしくお願いいたします。

  • Accessにて、コントロールの編集可能、使用可能の設定

    Access2002を使用しています。 表形式で作成したフォームで、 Aというチェックボックスに、チェックが入っている場合  Bのコントロールは入力可能、  Cのコントロールは入力不可 チェックが入っていない場合、  Bのコントロールは入力不可、  Cのコントロールは入力可能 というふうにしたいのですが、 Private Sub A_AfterUpdate()   If A = -1 Then     B.Locked = False     B.Enabled = True     C.Locked = False     C.Enabled = False   Else     B.Locked = False     B.Enabled = False     C.Locked = False     C.Enabled = True   End If End Sub 上記のように設定すると、すべてのレコードに対しての設定になってしまいます。 1件ずつのレコードに対して、条件を設定するにはどのようにすればよいでしょうか? よろしくお願いいたします。

  • Excel フォームコントロール オプション

    いつもお世話になってます。 ActiveXのOptionButtonやChekcBoxは複製Windowでは働かないので、フォームコントールを使おうと思います(フォームコントロールは動作します)。 例えばVBAなら,次のようにすればCheckBox2はoffになります。 これをフォームコントロールのチェック(ボックス)でやりたいのですが? Sub CheckBox1_Click() If CheckBox1.Value = True Then CheckBox2.Value = False" End Sub

  • フェオームコントロールとActiveXコントロール

    VBAについての質問です。 Excel2013を使っています。次のような場合に不具合があります。 sheet1上にフェオームコントロールのボタンを配置し、ユーザーフォームを呼び出します。 ユーザーフォームにはコマンドボタンを配置し、コードは Worksheets("Sheet2").Select です。 実行すると、Sheet2に画面は変わりますが、セルに何かを入力すると、入力したはずのものがすぐ 消えて、しまいます。スクロールもできません。 実際には Sheet1 に入力されています。 sheet1上のボタンをActiveXコントロールのコマンドボタンを使用して、同じユーザーフォームを呼び出し実行すると、正常に作動します。 この現象は、2010以前のバージョンだと、どちらも同じ動作をすると思います。すべてを調べたわけではありませんが。 12月10日(水)の更新後、Excel2013ではActiveXコントロールのコマンドボタンが使用できなくなったと思いますが、VBAに詳しい方で、何か解決策をご存じの方、アドバイスをお願いします。

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

    エクセルVBAでユーザーフォーム上にオプションボタンが2つ、コンボボックスが6つあります。 OptionButton1をクリックした場合のComboboxの動きの制御について以下のように書いてみました。 これでも期待通りCombobox1~3は動き4~6は動かなくなります。 ただ、もっと別の簡単な書き方があるのではないかと思い質問しました。 宜しくお願いします。 Private Sub OptionButton1_Click() ComboBox1.Enabled = True ComboBox1.ListIndex = 0 ComboBox2.Enabled = True ComboBox2.ListIndex = 0 ComboBox3.Enabled = True ComboBox3.ListIndex = 0 ComboBox4.Enabled = False ComboBox4.ListIndex = 0 ComboBox5.Enabled = False ComboBox5.ListIndex = 0 ComboBox6.Enabled = False ComboBox6.ListIndex = 0 End Sub

専門家に質問してみよう