
VBA初心者です。
エクセル上で特定のセル(A1~C3の6セル)が変更された際に、マクロが自動で動作するようにしたいと考えています。
既に単独では動作確認済のtest()マクロを作り、
さらに以下のイベントプロシージャを記述したのですが、セルの変更に対して反応が起きません。
どの部分に問題があるかご教示願えますでしょうか。
※test()マクロに関してはA1~C3のセルは参照するものの、
これらのセルを書き換える事はない為、ループは起きない可能性もありますが、
念の為Application.EnableEvents = Falseを入れてあります。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C3")) Is Nothing Then
Exit Sub
Else
Application.EnableEvents = False
Call test
Application.EnableEvents = True
End If
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは。
>どの部分に問題があるかご教示願えますでしょうか。
サブルーチンに肝心な部分を書いておいて、動きませんといっても、それは誰も分からないと思います。
それよりも、むしろ、ご自分で出来るように、デバッグの方法を身につけることですね。
イベント・ドリブン型の最初の部分に[ブレークポイント]を置き、
次に、「Test」というプロシージャが、どこかに置かれていたら、そこに、[ブレークポイント]を置きます。
イベントを発生させたら、[F8]で、ステップモードでひとつずつ動かします。そしてマクロが、正しく動いているかチェックします。そして、そのマクロが、再び、戻ってくるかどうか、様子をみます。
ただし、今回のマクロは途中で止めると、Application.EnableEvents = True に戻っていないことがありますから、イミディエイトウィンドウあたりで、設定を戻したほうがよいです。
また、初心者ならでは失敗は、Test プロシージャが、標準モジュールか、そのシートモジュールのどちらかに置いていないのが原因だったりします。

こんにちは。回答ありがとうございます。
>サブルーチンに肝心な部分を書いておいて、動きませんといっても、それは誰も分からないと思います。
確かに、単独で動作したからと言ってそれをサブルーチン側に持ってきて正常に動作する保証がない以上、全て記述せずに質問したのは軽率でした、申し訳ありません。
>また、初心者ならでは失敗は、Test プロシージャが、標準モジュールか、そのシートモジュールのどちらかに置いていないのが原因だったりします。
結果としてはまさにこれが原因でした。
モジュールの配置を確認しなおして、正しく配置した所正常に動作しました。
念の為説明頂いたようにブレークポイントを設定してステップモードでチェックした所
想定していた通りの動作をしていることも確認できました。
無事先に進むことが出来そうです、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
【Excel VBA】セルの値が変更されたらマクロを実行
その他(Microsoft Office)
-
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
Worksheet_Changeが動かない
その他(Microsoft Office)
-
4
VBA/Worksheet_Changeがうまくいかない
PowerPoint(パワーポイント)
-
5
'Range'メソッドは失敗しました
Excel(エクセル)
-
6
worksheet_changeがループする
PowerPoint(パワーポイント)
-
7
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
8
セルの値が変ると自動でマクロが実行される。
その他(Microsoft Office)
-
9
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
10
Worksheet_Change(ByVal Target As Range)の下に複数範囲
Excel(エクセル)
-
11
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
12
Excel2010 イベントプロシージャが動かない
Excel(エクセル)
-
13
worksheet_changeの無効化
Excel(エクセル)
-
14
他のシートの特定のセルが変わると、自動実行されるマクロについて
Excel(エクセル)
-
15
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
16
VBA 実行時エラー1004 rangeメソッドは失敗しました。globalオブジェクトのエラー
Excel(エクセル)
-
17
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
18
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
19
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
20
Sub ***( ) と Private Sub ***( ) の違い
Visual Basic(VBA)
関連するQ&A
- 1 Excel 2003 VBA Worksheet_Changeの動作速度について
- 2 Excel VBA初心者です。 Worksheet_Changeは既に使われています。 C列に入力
- 3 エクセル VBA Worksheet_Changeとコピー&ペースト
- 4 エクセルVBAの記述法(Worksheet_Changeで)
- 5 ExcelのWorksheet_ChangeイベントのTargetについて
- 6 エクセル:Worksheet_Changeのエラー回避
- 7 エクセルのPrivate Sub Worksheet_Change
- 8 worksheet_changeの無効化
- 9 Private Sub Worksheet_Change が複数
- 10 Worksheet_Changeで入力監視範囲をあと2つ増やしたいです
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
長い時間かかるマクロが実行中...
-
5
エクセルで検索バーのような表示
-
6
エクセルファイルを開いた回数...
-
7
EXCELのダイアログシートって、...
-
8
エクセル シート内の一番下のセ...
-
9
エクセルで特定の行だけ行削除...
-
10
【エクセル】「実行時エラー’10...
-
11
複数のセル一括削除
-
12
前月分を次月シートに繰越でき...
-
13
Excelのシート上のShapeにイベ...
-
14
Excelで数字を入れたら対応する...
-
15
Excelの操作の履歴を残す方法
-
16
EXCEL マクロの記録で並べ替え...
-
17
エクセルで複数のシートのクリ...
-
18
【Excel】文字色を一括変換したい
-
19
excelVBAの実行時エラー'1004'...
-
20
マクロについて教えてください。
おすすめ情報
公式facebook
公式twitter