
Excel2007でマクロ作成中の初心者です。
1)Aブックに次のマクロを書いてます。
Sub データをクリアする()
Dim list, SheetName
Const EXCEPT_NAME = "計算 番号 明細"
For Each SheetName In ActiveWorkbook.Worksheets
If InStr(EXCEPT_NAME, SheetName.name) = 0 Then
Sheets(SheetName.name).Activate
クリア範囲
End If
Next
End Sub
--------------------------------
Sub クリア範囲()
Range("AM13:AQ13").Select
Selection.ClearContents
End Sub
2)上のマクロは、Bブック上で実行します。
Bブックのマクロ実行は、最初のボタンクリック1回のみです。
(このBブックが閉じられ保存されるまで)
なぜなら、クリアした部分に、新しいデータを入れるからです。
誤って2回目のボタンクリックでも、マクロ実行しないようにしたいです。
せっかく入力した新しいデータを消去しないためです。
このようなコマンドボタンを作るにはどうしたらよろしいでしょうか?
No.6ベストアンサー
- 回答日時:
>足したところ、なぜかその部分が黄色くなり、
>「変数が定義されていません」というコンパイルエラーが発生します。
あ、もしかして、ボタンがActiveXコントロールになってないのでは?
http://www.officelabo.net/excel/list2.html
なお、前の回答にある、「ボタンの名前」はこのリンクの2番目の画像に出ているプロパティボックスの一番上の枠内の太字で書かれた文字です。
No.5
- 回答日時:
>足したところ、なぜかその部分が黄色くなり、
>「変数が定義されていません」というコンパイルエラーが発生します。
ボタンの名前と書かれている名前がくい違っているか、Falseなどにつづり間違えがあるか、のいずれかと思われます。
No.4
- 回答日時:
>EnabledプロパティをFALSEにする方法がわかりません
質問に書かれたマクロのどこかに(マクロを実行するボタンの名前がCommandButton1だとすると)
CommandButton1.Enabled = False
を付け足すだけです。
No.2
- 回答日時:
コマンドボタンで行う処理の先頭で、既に実行されたのか、まだなのか、を判断する。
既に実行されたのなら、ExitSubで処理を抜ける。
まだなら、「処理されたよ」という記録を残す。
「まだだよ」「処理されたよ」をどういう形で表すかはアナタが決めてください。
この回答への補足
ご教示くださったように自分なりにコードを作ってみました。これでうまく作動しているようにみえますが、このコードにフラッグを立てるとすると、どのように修正したらよろしいでしょうか?
Sub データを消去()
Sheets("明細").Select
If Range("D35").Value = 0 Then
MsgBox "既にクリアしてあります"
Exit Sub
Else
データクリア
MsgBox "データをクリアしました"
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
コマンドボタンに二回目のマクロ実行しない設定を
Visual Basic(VBA)
-
クリックイベントなのに、2回クリックしないとフォー
Access(アクセス)
-
ボタン2回押しを無効にしたい
JavaScript
-
-
4
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
5
ExcelVBAで毎月月初の最初にBookを開いたときに実行させたいと時はどうしたらよいのでしょうか。
その他(コンピューター・テクノロジー)
-
6
Excelのマクロでボタンを押すと数が1足されるようにするには?
IT・エンジニアリング
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
9
メッセージを1度だけ表示したい。
Visual Basic(VBA)
-
10
自分の左隣のセル
Excel(エクセル)
-
11
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
12
エクセル ボタンを押すとセルの色が変わるようにしたい
Excel(エクセル)
-
13
VBA ユーザーフォーム ボタンクリック後にセルにフォーカス
Visual Basic(VBA)
-
14
Excelのマクロボタンをダブルクリックされて困っています
Visual Basic(VBA)
-
15
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
-
16
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
17
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
18
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
19
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
20
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでツールバーに「縮小...
-
複数のデータ系列の線の太さを...
-
別ブックからユーザーフォーム...
-
VBA[Private Sub]のコードをシ...
-
エクセルVBAで、画像の倍率を知...
-
どのドキュメントは暗号化され...
-
Word 2016で赤文字指定のマクロ...
-
VBAを使ってエクセルシート...
-
excel 2007でのVBAのソースの見方
-
エクセル2010 Shapeをクリップ...
-
【ExcelVBA】クエリの更新とピ...
-
Powerpointでランダムな数字の...
-
COMポートマクロ入りのxlsファ...
-
エクセル vba クリック~離し...
-
VBAからVB.Netで作成したフォー...
-
VBAでの複数ページの印刷範囲の...
-
マクロを使いダイレクトメール...
-
WORD VBA 表の複数行選択を教え...
-
フォルダ内の全ブックのシート...
-
Windows10のクイックアクセスと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
どのドキュメントは暗号化され...
-
VBA[Private Sub]のコードをシ...
-
最初の1回のみにボタンクリッ...
-
Powerpointでランダムな数字の...
-
cellsで特定の離れた範囲を選択...
-
別ブックからユーザーフォーム...
-
ピボットグラフの書式の固定に...
-
エクセルVBAで、画像の倍率を知...
-
【ExcelVBA】クエリの更新とピ...
-
Pictures.Insertメソッド⇒Shape...
-
VBAを使ってエクセルシート...
-
EXCELにクリップボードにある画...
-
エクセル2007 テキストボ...
-
VBAで実行時エラー '1004'の解...
-
エクセルのマクロでSelection.S...
-
ユーザフォームをどの画面から...
-
wordのマクロで縮小して貼り付...
おすすめ情報