
下記のマクロを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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
-
4
エクセルの数式について教えてください。
Excel(エクセル)
-
5
エクセルマクロを教えてほしい(月別のシートを一つにまとめたい)
Excel(エクセル)
-
6
エクセルを使用して、円周率を表示させる方法
Excel(エクセル)
-
7
Excelで数値を時間数に変換する関数について
Excel(エクセル)
-
8
【マクロ】for nest について 別のブックを動かす際のコード
Excel(エクセル)
-
9
EXCELで数値が異なった数字を足して目標値に最も近い組み合わせを選び、かつその目標値を超えないよう
Excel(エクセル)
-
10
VBA コードどこがおかしいですか?
Visual Basic(VBA)
-
11
【Excel】版が同じ事を示す番号を生成したい
Excel(エクセル)
-
12
Vba UserformからExcelシートのサイズ変更について教えてください
Visual Basic(VBA)
-
13
【マクロ】マクロが割当てされたボタンの作成する際に、作成先のモジュールにもマクロを保存できますか?
Excel(エクセル)
-
14
VBA初心者です。次のVBAコードで、17行目を削除したいのですがうまく動きません 改善策を教えてく
Visual Basic(VBA)
-
15
エクセル IF計算式?でしょうか?
Excel(エクセル)
-
16
Excelの条件付き書式について
Excel(エクセル)
-
17
エクセル折れ線グラフについて教えてください。 10店舗の売上目標に対する達成率を折れ線グラフで作成し
Excel(エクセル)
-
18
【マクロ】functionプロシージャの、変数について
Excel(エクセル)
-
19
複数のテキストファイルをexcelでそれぞれ別シートにUTF-16で書き出したい
Excel(エクセル)
-
20
Excelの時刻の不思議
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
vb.net(vs2022)のtextboxのデザ...
-
【ExcelVBA】5万行以上のデー...
-
[VB.net] ボタン(Flat)のEnable...
-
Vba セルの4辺について罫線が有...
-
算術演算子「¥」の意味について
-
質問58753 このコードでうまく...
-
エクセルのVBAコードと数式につ...
-
【マクロ】変数を使った、文字...
-
【マクロ】切取りの場合、形式...
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
-
エクセルのVBAコードについて教...
-
ワードの図形にマクロを登録で...
-
VBAでセルの書式を変えずに文字...
-
vbsでのwebフォームへの入力制限?
-
エクセルの改行について
-
VBAでFOR NEXT分を Application...
-
VBAについてです。 どなたかご...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロVBAについて、コードを教...
-
testファイル内にある複数のpng...
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
【マクロ】切取りの場合、形式...
-
【ExcelVBA】5万行以上のデー...
-
ExcelVBAでパワポを操作したい
-
(EXCEL超初心者)EXCELの関数(ま...
-
エクセルの改行について
-
Excelマクロで使うVBAコードを...
-
ワードの図形にマクロを登録で...
-
【マクロ】変数を使った、文字...
-
VBAでFOR NEXT分を Application...
-
VBAの質問(Msgboxについて)です
-
エクセルのVBAコードについて教...
-
Excelマクロで使うVBAコードを...
-
Excelのマクロについて教えてく...
-
VBAの「To」という語句について
おすすめ情報