プロが教えるわが家の防犯対策術!

一つのブック内に2枚のシートがあり、Aのシートを修正するとBのシートに修正内容を更新するマクロ、Bのシートを修正するとAのシートに修正内容を更新するマクロを作ったのですが、互いにマクロの実行ボタンで実行する必要があります。
アクティブシートを変更する時あるいはDATA保存する際に自動的にマクロを実行する方法があればご教授してください。
Worksheets("アクティブシートA").OnSheetActivate = "修正B→A"
Worksheets("アクティブシートB").OnSheetActivate = "修正A→B"
上記の2つのマクロを自動的に実行するマクロを作り実行できたのですが現ブックを閉じて再度開いて実行させても再度マクロ実行を行わないと作動してくれません。
また修正はそれぞれAのシートをアクティブにする時はBのシートを修正をした後、Bのシートをアクティブにする時はAのシートを修正した後です。
質問の仕方、表現に問題があるかとは思いますがよろしくお願い致します。

A 回答 (1件)

こんにちは



シートがアクティブになった時に、マクロを自動的に実行するようにしておけばよさそうです。

それぞれのシートモジュールで Worksheet_Activate イベントを利用するか、
あるいは、
ワークブックモジュールで Workbook_SheetActivate を利用なさるのが良いでしょう。

https://docs.microsoft.com/ja-jp/office/vba/api/ …
https://docs.microsoft.com/ja-jp/office/vba/api/ …
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
シートモジュールにマクロを記入出来ることを理解しました。
解決いたしました。
ありがとうございました。

お礼日時:2021/02/12 22:50

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