電子書籍の厳選無料作品が豊富!

下記のコードは先日教えて頂いたコードを参考に作成しました。
セルD47に不特定の文字が表示されるとマクロ住所コピーが実行されます。
しかし、セルD47があるシートを他のブックのシートからコピペした場合は
マクロが上手く実行されません。
セルD47に直接書き込むとマクロが事項されます。
この問題を解決できる方法を教えてください。
よろしくお願いいたします。
If Not Intersect(Range("$D$47"), Target) Is Nothing And Not Target.Value <> "" Then Call 住所コピー
以上となります。
よろしくお願いいたします。

A 回答 (1件)

こんにちは



意味がよくわかりませんけれど・・

>セルD47があるシートを他のブックのシートからコピペした場合は
>マクロが上手く実行されません。
状況が不明ですが、シートそのものをコピーしたのであれば、コピー元のシートにChangeイベントのマクロが設定されていなければ当然ながら動作しません。
なおかつ、シートそのもののコピーでは、セルの値は変更されていないので、Cangeイベントは発生しません。
マクロが設定されていないシートでも同様の処理を適用したいという意味なら、ブックのChangeイベントを利用してください。
(ただし、シート名のチェックが必要になると思います)

セルの値を他シートからコピペしたのであれば、Changeイベントは発生するので、ご提示のコードは実行されるはずです。
ただし、ご提示のコードでは対象セルの値が空白の場合は実行しないように制御していますので、空白セルをコピペしても実行はされません。
空白の場合でも実行したいという意味なら、制御を外せば良いでしょう。

なお、質問者様はマクロを多用しているようですので、どこかのマクロでイベントを停止したままになっていれば、当然ながらイベントは発生しません。
    • good
    • 0
この回答へのお礼

回答ありがとございます
連絡が遅くなりまして申し訳ありません
詳しく教えて頂きまして
ありがとうございました
おっしゃる通りです
少し整理して、試してみます
感謝いたします

お礼日時:2024/07/03 20:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A