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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
Worksheet_Changeが動かない
その他(Microsoft Office)
-
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
-
4
worksheet_changeがループする
PowerPoint(パワーポイント)
-
5
Excel2010 イベントプロシージャが動かない
Excel(エクセル)
-
6
Worksheet_Changeの内容を標準モジュールから実行するには?
その他(プログラミング・Web制作)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
10
他のシートの特定のセルが変わると、自動実行されるマクロについて
Excel(エクセル)
-
11
エクセルでエラーが出て困っています。
Excel(エクセル)
-
12
マクロ 実行ボタンを押さずに常に実行
Excel(エクセル)
-
13
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
14
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
15
VBA:結合されたセルに対する「Target」について
Access(アクセス)
-
16
”戻り値”が変化したときに、マクロを実行したい
Visual Basic(VBA)
-
17
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
18
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
19
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
20
Worksheet.Change イベントを他のシートにも反映させる方法?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のシートのクリ...
-
Excel VBAでのWorksheet_Change...
-
エクセルファイルを開いた回数...
-
Excelで数字を入れたら対応する...
-
【エクセル】フリーワード検索...
-
セルの一部分だけを太字にする方法
-
エクセルで特定の行だけ行削除...
-
【エクセル】「実行時エラー’10...
-
エクセル シート内の一番下のセ...
-
エクセル上にシェイプで二重丸...
-
エクセルで、セルにある数字が...
-
エクセルのチェックボックス誤作動
-
Excelのシート上のShapeにイベ...
-
Excelにて、同じ画像を複数のセ...
-
Excelでセル内の文字をファイル...
-
エクセルのマクロについて教え...
-
フォルダ内にある全ファイルの...
-
長い時間かかるマクロが実行中...
-
エクセルVBAで内容変更のたびに...
-
任意のセルに貼り付けをするマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelで数字を入れたら対応する...
-
エクセルファイルを開いた回数...
-
エクセルで複数のシートのクリ...
-
エクセルで特定の行だけ行削除...
-
自分の専門分野の仕事。初見で...
-
Excelのシート上のShapeにイベ...
-
長い時間かかるマクロが実行中...
-
【エクセル】フリーワード検索...
-
エクセル シート内の一番下のセ...
-
【エクセル】「実行時エラー’10...
-
Excelでセル内の文字をファイル...
-
エクセル:セル内の文字列の最...
-
セルの一部分だけを太字にする方法
-
EXCELのダイアログシートって、...
-
フォルダ内にある全ファイルの...
-
シートではなくBOOK間で重複し...
-
エクセルのワークシート(テン...
-
エクセル上にシェイプで二重丸...
-
前月分を次月シートに繰越でき...
おすすめ情報