• ベストアンサー

EXCEL-VBAでコマンドボタンに条件を追加したい

EXCEL-VBAでコマンドボタンを実行出来る 条件を追加したいです。 初心者なので基本的な質問ですみませんが、 よろしくお願いします。

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

  • ベストアンサー
noname#20377
noname#20377
回答No.1

Sub CommandButton1_Click() if 条件式 then 'いつもの作業作業 end if End Sub とするか、あるいは有効無効を切り替えるタイミングで CommandButton1.Enabled=falseにするか

n-hayato
質問者

お礼

CommandButton1.Enabled=falseで実行ボタンを 無効に切り替えるようにします。 どうもありがとうございました。

その他の回答 (4)

noname#22222
noname#22222
回答No.5

Static(静的変数)でコマンドボタンがクリックされたか否かを判定するというやり方が一般的です。 Private Sub CommandButton1_Click()   Static isClick As Boolean      If Not isClick Then     isClick = True     Debug.Print "Test!"     isClick = False   End If End Sub

回答No.4

実行中 CommandButton1.Enabled = False としておけばいいのでは?

noname#22222
noname#22222
回答No.3

質問内容と意図が不明ですが・・・。 Worksheets("Sheet1")にCommandButton1が配置されているとします。 ブックをオープン時にパスワードを要求します。 一致しなければ、CommandButton1を無効化します。 1,コードを表示。 2,[挿入]-[標準モジュール]をクリック。 3,Module1に以下のコードを書く。 Option Explicit Const conPassword = "abc" Public Sub Auto_Open()   Dim strPassword As String   strPassword = InputBox("パスワードを入力して下さい!")   Worksheets("Sheet1").CommandButton1.Enabled = CBool(strPassword = conPassword) End Sub *難点は、オープン時のみに有効・無効を設定し途中で変更できないことです。 *コマンドボタンのクリックイベントに書けば良いかも知れません。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

ボタンに対しての実行条件を付ける事はできません。 コマンドボタンが押されたら、プログラムが実行されて仕舞うので、実行前に条件を満たしているかをチェックして、VBAの実行を継続するか中止するかの判断をするプログラムを追加する事になります。 どのような条件で実行したいのでしょうか?

n-hayato
質問者

補足

コマンド実行中に再度ボタンを押せないように条件を 付けてやりたいんですが。

関連するQ&A

  • Excel2003 コマンドボタンのプロパティ

    Excel2003 の vba の初心者です。 (Access2003 の vba の方が得意です。) 既に出来上がっているExcelのvbaを編集したいのですが、 コマンドボタンのプロパティが表示できません。 Accessであれば、コマンドボタンを選択して右クリックするとプロパティがあります。 しかし、Excelでは、コントロールツールボックスでデザインモードを押下し、 コマンドボタンを選択してコントロールツールボックスのプロパティを押下しても、 プロパティの一番上のプルダウンの所は「Sheet1 Worksheet」となっていて、 ▼を押下しても、他には何もありません。 どうも、Worksheetのプロパティが表示されているようです。 コマンドボタンのプロパティを表示させるには、どうすればよいのでしょうか。 基本的なことでお恥ずかしいですが、 ご教授いただければ幸いです。 よろしくお願いいたします。

  • VBA EXCEL EXCEL 出力 コマンドボタン

    EXCELに設置されたコマンドボタンを実行すると EXCELからEXCELへデータを出力できるようなVBAプログラムはあるのでしょうか? サンプルなど紹介して頂けたらと思います。

  • PowerPoint VBAコマンドボタンでのマクロ

    PowerPointでVBAを使ったフォームを作製しました。 そのフォームを表示させるためマクロを書き、スライド上に コマンドボタンを配置させマクロを実行させたいと思っています。 ExcelのVBAですとコマンドボタンにマクロを割り当てるのは ツールバーのフォームのコマンドボタンで設置すると簡単ですが PowerPoint VBAですとコントロールツールボックスでのコマンド ボタンしかなくボタンにマクロを割り当てる方法が分かりません。 どなたかコマンドボタンにマクロを割り当てて実行する方法を 教えて下さい。 宜しくお願い致します。

  • Excel2010 VBA

    Excel2010でVBAのフォームを使って「コマンドボタン」をクリックしたときにフォーム入力した内容をデータ(リスト)に転記(反映)させたいのですが どのようにしたらいいでしょうか? コマンドボタンの作り方は分りましたがそのマクロを実行する内容(コード)の作り方がいまいちわかません ちなみにデータ(リスト)は上から順番に空白の列を埋められていけばいいです よろしくお願いします

  • excel2000のVBAについて

    excel2000でコマンドボタン(command1)をclickすると VBAの command1_click関数の処理をするという マクロをVBAで作成したいのですが、 (1)excelシート上にコマンドボタンの作成方法 を教えてください

  • EXCEL2002VBAのピクチャボック内に絵を描きたい

    基本的な質問ですみません。 EXCEL2002のVBAで、Form内のピクチャボック内に 直線、四角、円などの絵を描きたいのですが、 やり方がわかりません。 またEXCEL2002のVBAとEXCEL2003のVBAはコマンドとか かなり変わっているのでしょうか?

  • コマンドボタンがクリックしても動きません

    Excel2007で簡単なマクロを組んで、コマンドボタンで実行していたのですが、コマンドボタンをクリックしても反応しなくなりました。マクロを表示して実行すれば動くのですが、復旧するための対処方法ないでしょうか?

  • Excel2003 VB コマンドボタン

    Excel2003 VB コマンドボタン VB初心者です。コマンドボタンをクリックしたら、テキストボックス1に入力してあるコードと一致する値を別シートのデータTBからvlookupで呼び出してテキストボックス2に表示したいのですが、うまくいきません。コードの例を教えていただけると助かります。よろしくお願いします。

  • Excel2011のVBAについて教えてください。

    初めて質問します。 Excel2011forMACでVBAを使いBOOKを指定してクローズさせたいのですが、 エラー1004が起こりファイルを閉じることができません。 作成したVBAは以前にWindowsXP、Excel2000で作成したものを修正したものだったためなのではないかと思い、 改めてExcel2011forMACで下記ように、コマンドボタンをクリックすると"test.xlsx"を閉じるだけのテストを行いましたが同じエラーが発生します。 Private Sub CommandButton1_Click() Windows("test.xlsx").Close  End Sub 実行すると『実行時エラー'1004' _ オブジェクト'Close'のメソッド'Window'が失敗しました。』となります。 ちなみに、WindowsをWorkbooksにしても同様のエラーが発生しました。 Workbooksではファイルを指定しなければエラーは発生しないのですが、できれば1つのファイルを開いた状態にしておきたいと思っています。 このエラーの解消方法を教えていただけませんか。 それとも、MACでは個別にファイルを閉じることはできないのでしょうか。 Excel2011を使っているMAC OS Xのバージョンは10.6.7です。 VBAについては、初心者レベルで常にヘルプとマクロの記録を頼りになんとか作成しています。さらに、MACでVBAを使ったのが初めてで、この事象が一般的に知られていることなのかわかりません。いろいろ調べて同じような事例が見つけられなかったので質問させていただきます。 よろしくお願いします。

  • コマンドボタンでコマンドボタンを作成

    VBAで質問ですSheet1でコマンドボタンを押すとSheet2のあるセルへコマンドボタンを作成する方法を知りたいのですがどうしたらよいでしょうか?

専門家に質問してみよう