下記のマクロをVBAコードで設定していますが、
何故か、同じマクロが2回程度実行されます。
このマクロを作業中に「1回」だけ実行するように出来る方法があれば、教えてください。
コード
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
On Error Resume Next
If Not Intersect(Target, Range("$K$5").Text) Is Nothing Then
If Range("K$5").Value = "手続き必要" Then
Call 省エネ方法
End If
End If
End Sub
マクロ
Sub 省エネ方法()
Dim alert
n = Application.InputBox("省エネ方法を番号で入力で入力してください。" & vbCr & " " & vbLf & "1: 省エネ適判" & vbLf & "2: 仕様基準", Title:="省エネ提出方法確認", Type:=1)
If n = 1 Then
Call 省エネ適判
ElseIf n = 2 Then
Call 仕様基準
End If
End Sub
以上となります。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
同じマクロが2回実行される原因として、以下のようなケースが考えられます。
イベントの再トリガー
Worksheet_Changeイベント内でセルの値を変更したりすると、その変更が再びWorksheet_Changeイベントをトリガーする可能性があります。
意図しない条件一致
IntersectやRange("$K$5")の参照が正しくない場合、意図せず複数回実行されることがあります。
対策例
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
' 再帰的なトリガーを防ぐためにイベントを一時停止
Application.EnableEvents = False
' 対象セルの変更を確認
If Not Intersect(Target, Range("$K$5")) Is Nothing Then
If Range("$K$5").Value = "手続き必要" Then
' 省エネ方法を一度だけ呼び出す
Call 省エネ方法
End If
End If
' イベントを再度有効化
Application.EnableEvents = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2024/12/04 13:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2024/07/02 08:51
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2024/11/27 15:06
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2024/12/05 16:25
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2024/03/06 13:07
- Visual Basic(VBA) エクセルのVBAコードについて教えてください。 6 2024/06/28 11:33
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2024/03/18 17:57
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 5 2024/05/29 16:59
このQ&Aを見た人はこんなQ&Aも見ています
-


ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-


Excelのマクロについて教えてください。
Visual Basic(VBA)
-


ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
-
4

エクセルの数式について教えてください。
Excel(エクセル)
-
5

エクセル タブの下のメニューを選択 実行するコード
Visual Basic(VBA)
-
6

[Excel VBA]特定の条件で文字を削除&残す処理をするファイルを作成したいです
Visual Basic(VBA)
-
7

考えた式の戻り値が期待通りにならない
Excel(エクセル)
-
8

エクセル 入力があった場合のみ隣の関数を表示
Excel(エクセル)
-
9

VBAでセルの書式を変えずに文字列を置換する方法をご教示ください
Visual Basic(VBA)
-
10

年間の医療費のデータがあり、月々の集計をする計算式を教えていただけませんか
Excel(エクセル)
-
11

Excelの計算で差分を求める場合について
Excel(エクセル)
-
12

Excelの計算が合いません。 諸事情で会計の簡素な購入・販売諸元表を作っているのですが、一つの項目
Excel(エクセル)
-
13

エクセルを使ってQRコードを作成したい。
Excel(エクセル)
-
14

条件付き書式の効率的な設定の仕方について
Excel(エクセル)
-
15

if関数。半角文字や全角文字で分ける事ができますか?
Excel(エクセル)
-
16

今までは、 「CSVの出力先を選択してください。」 という画面から、CSVファイルをデスクトップに引
Excel(エクセル)
-
17

excelVBAについて。
Excel(エクセル)
-
18

【再投稿】レイアウトが異なる別のワークブックからデータを転記する方法を教えてください
Excel(エクセル)
-
19

Excelのマクロについて教えてください。
Visual Basic(VBA)
-
20

IF 日付範囲に入っていたら
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】オートフィルター を...
-
Vba Array関数について教えてく...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】値を変更しながら...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
vb.net(vs2022)のtextboxのデザ...
-
Excel VBA 選択範囲の罫線色の...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルの改行について
-
VBAで特定の文字が入った行をコ...
-
WindowsのOutlook を VBA から...
-
Excel 範囲指定スクショについ...
-
【マクロ】シートの変数へ入れ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報














