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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/09 12:17
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
コマンドボタンに二回目のマクロ実行しない設定を
Visual Basic(VBA)
-
Excelのマクロボタンをダブルクリックされて困っています
Visual Basic(VBA)
-
クリックイベントなのに、2回クリックしないとフォー
Access(アクセス)
-
-
4
ボタン2回押しを無効にしたい
JavaScript
-
5
メッセージを1度だけ表示したい。
Visual Basic(VBA)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
VBAのタイマー
Excel(エクセル)
-
8
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
9
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
10
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
11
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
12
エクセルで回数をカウントするマクロ
Excel(エクセル)
-
13
EXCEL-VBAでコマンドボタンに条件を追加したい
Visual Basic(VBA)
-
14
Excel VBAで、Application.InputBoxのキャンセルと入力値ゼロを区別したい。
Visual Basic(VBA)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
初回起動のみ判別したい
Visual Basic(VBA)
-
17
EXCELでセルの値が変化したときだけにマクロ実行
Excel(エクセル)
-
18
今日の日付が入った行のデータを取得するマクロ
Excel(エクセル)
-
19
マクロボタンを押すたびに違う動作をしたい
Excel(エクセル)
-
20
VBA 数式を残して値をクリアについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
Powerpointでランダムな数字の...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
エクセルシートをまとめて印刷...
-
VBA[Private Sub]のコードをシ...
-
最初の1回のみにボタンクリッ...
-
エクセルVBAで、画像の倍率を知...
-
別ブックからユーザーフォーム...
-
VBAでこのような図形の移動はで...
-
ユーザーフォームを「Esc」キー...
-
cellsで特定の離れた範囲を選択...
-
VBAで実行時エラー '1004'の解...
-
どのドキュメントは暗号化され...
-
【VC++6.0(MFC)】コメントを一...
-
Pictures.Insertメソッド⇒Shape...
-
VBAを使ってエクセルシート...
-
エクセルマクロのグラフ操作
-
エクセルで「ODBC Microsoft Ac...
-
エクセル2007 テキストボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
cellsで特定の離れた範囲を選択...
-
ファイル名を今日の日付、時刻...
-
Powerpointでランダムな数字の...
-
VBA[Private Sub]のコードをシ...
-
エクセルシートをまとめて印刷...
-
エクセル2007 テキストボ...
-
別ブックからユーザーフォーム...
-
ピボットグラフの書式の固定に...
-
VBAを使ってエクセルシート...
-
エクセルのマクロでSelection.S...
-
最初の1回のみにボタンクリッ...
-
VBAに詳しい方教えてください。
-
VBAをVBに変換する方法
-
エクセルワークシート上に印刷...
-
Pictures.Insertメソッド⇒Shape...
-
【ExcelVBA】クエリの更新とピ...
-
エクセルVBAで、画像の倍率を知...
-
エクセル vba クリック~離し...
おすすめ情報