
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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
コマンドボタンに二回目のマクロ実行しない設定を
Visual Basic(VBA)
-
ボタン2回押しを無効にしたい
JavaScript
-
クリックイベントなのに、2回クリックしないとフォー
Access(アクセス)
-
-
4
Excelのマクロでボタンを押すと数が1足されるようにするには?
IT・エンジニアリング
-
5
Excelのマクロボタンをダブルクリックされて困っています
Visual Basic(VBA)
-
6
VBAのタイマー
Excel(エクセル)
-
7
マクロボタンを押すたびに違う動作をしたい
Excel(エクセル)
-
8
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
9
メッセージを1度だけ表示したい。
Visual Basic(VBA)
-
10
Accessフォームのボタンの二度押し禁止
Access(アクセス)
-
11
Excelでマクロ実行中に画面を固定する方法
Visual Basic(VBA)
-
12
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
13
VBAで繰り返しコピーしながら下へ移動させる方法
Excel(エクセル)
-
14
Excel-VBA>コントロールをグレイアウトするには?
Excel(エクセル)
-
15
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
16
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
17
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
18
ある列のセルに特定の文字が入っていたら他のセルに決まった文字を入れる
Word(ワード)
-
19
エクセルで、「いいね」のようなボタンを付けることはできますか
Excel(エクセル)
-
20
CommandButtonのCaptionを変化させたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
エクセルでツールバーに「縮小...
-
5
ピボットグラフの書式の固定に...
-
6
別ブックからユーザーフォーム...
-
7
VBA[Private Sub]のコードをシ...
-
8
【ExcelVBA】クエリの更新とピ...
-
9
エクセルマクロのグラフ操作
-
10
cellsで特定の離れた範囲を選択...
-
11
エクセルワークシート上に印刷...
-
12
どのドキュメントは暗号化され...
-
13
Excelのマクロで最下行を選択し...
-
14
最初の1回のみにボタンクリッ...
-
15
VBからPowerPointのマクロを実...
-
16
Pictures.Insertメソッド⇒Shape...
-
17
ACCESS VBAからWordのテンプレ...
-
18
VBAでこのような図形の移動はで...
-
19
VBAを使ってエクセルシート...
-
20
エクセルのマクロでSelection.S...
おすすめ情報
公式facebook
公式twitter