- ベストアンサー
EXCEL-VBAでコマンドボタンに条件を追加したい
EXCEL-VBAでコマンドボタンを実行出来る 条件を追加したいです。 初心者なので基本的な質問ですみませんが、 よろしくお願いします。
- n-hayato
- お礼率20% (1/5)
- Visual Basic
- 回答数5
- ありがとう数1
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Sub CommandButton1_Click() if 条件式 then 'いつもの作業作業 end if End Sub とするか、あるいは有効無効を切り替えるタイミングで CommandButton1.Enabled=falseにするか
その他の回答 (4)
Static(静的変数)でコマンドボタンがクリックされたか否かを判定するというやり方が一般的です。 Private Sub CommandButton1_Click() Static isClick As Boolean If Not isClick Then isClick = True Debug.Print "Test!" isClick = False End If End Sub
- otto0001otto
- ベストアンサー率25% (64/249)
実行中 CommandButton1.Enabled = False としておけばいいのでは?
質問内容と意図が不明ですが・・・。 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)
ボタンに対しての実行条件を付ける事はできません。 コマンドボタンが押されたら、プログラムが実行されて仕舞うので、実行前に条件を満たしているかをチェックして、VBAの実行を継続するか中止するかの判断をするプログラムを追加する事になります。 どのような条件で実行したいのでしょうか?
補足
コマンド実行中に再度ボタンを押せないように条件を 付けてやりたいんですが。
関連するQ&A
- Excel2003 コマンドボタンのプロパティ
Excel2003 の vba の初心者です。 (Access2003 の vba の方が得意です。) 既に出来上がっているExcelのvbaを編集したいのですが、 コマンドボタンのプロパティが表示できません。 Accessであれば、コマンドボタンを選択して右クリックするとプロパティがあります。 しかし、Excelでは、コントロールツールボックスでデザインモードを押下し、 コマンドボタンを選択してコントロールツールボックスのプロパティを押下しても、 プロパティの一番上のプルダウンの所は「Sheet1 Worksheet」となっていて、 ▼を押下しても、他には何もありません。 どうも、Worksheetのプロパティが表示されているようです。 コマンドボタンのプロパティを表示させるには、どうすればよいのでしょうか。 基本的なことでお恥ずかしいですが、 ご教授いただければ幸いです。 よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- VBA EXCEL EXCEL 出力 コマンドボタン
EXCELに設置されたコマンドボタンを実行すると EXCELからEXCELへデータを出力できるようなVBAプログラムはあるのでしょうか? サンプルなど紹介して頂けたらと思います。
- 締切済み
- Visual Basic
- PowerPoint VBAコマンドボタンでのマクロ
PowerPointでVBAを使ったフォームを作製しました。 そのフォームを表示させるためマクロを書き、スライド上に コマンドボタンを配置させマクロを実行させたいと思っています。 ExcelのVBAですとコマンドボタンにマクロを割り当てるのは ツールバーのフォームのコマンドボタンで設置すると簡単ですが PowerPoint VBAですとコントロールツールボックスでのコマンド ボタンしかなくボタンにマクロを割り当てる方法が分かりません。 どなたかコマンドボタンにマクロを割り当てて実行する方法を 教えて下さい。 宜しくお願い致します。
- 締切済み
- Windows XP
- Excel2010 VBA
Excel2010でVBAのフォームを使って「コマンドボタン」をクリックしたときにフォーム入力した内容をデータ(リスト)に転記(反映)させたいのですが どのようにしたらいいでしょうか? コマンドボタンの作り方は分りましたがそのマクロを実行する内容(コード)の作り方がいまいちわかません ちなみにデータ(リスト)は上から順番に空白の列を埋められていけばいいです よろしくお願いします
- ベストアンサー
- その他MS Office製品
- 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のあるセルへコマンドボタンを作成する方法を知りたいのですがどうしたらよいでしょうか?
- 締切済み
- Visual Basic
お礼
CommandButton1.Enabled=falseで実行ボタンを 無効に切り替えるようにします。 どうもありがとうございました。