前提・実現したいこと
Excelのあるセルの値が変わったら、特定のマクロを実行したいと考えています。
具体的には、D26のセルの値が変わったら、D27の値を別のシートにコピーするといった作業を数十回繰り返したいと考えています。
Web等を参照し、以下のコードで、D26の値が変わった際に、copyマクロが起動することは確認しました。
該当のソースコード
VBA
1Private Sub Worksheet_Change(ByVal Target As Range) 2 If Intersect(Target, Range("D26:D26")) Is Nothing Then 3 Exit Sub 4 Else 5 Call Module1.copy 6 End If 7End Sub
発生している問題・エラーメッセージ
ただ1点問題がございまして、D26の値を手動で書き換えれば上記のマクロは動作するのですが、実際にはD26にはExcelのアドイン関数が記載されており、D26の値が変わるのは「外部のソフトが計算を実行し、その値をExcelのアドイン関数で読み取った」タイミングになります。
このため、D26の見た目上の値自体は、外部ソフトの計算結果によって変わるのですが、D26に記載されいてう式自体は変わらないため、D26の見た目上の数値がいくら変わっても上記のworksheetマクロが起動しません。
外部ソフトが計算を実行したタイミングをVBA側で判断できれば良いのですが、それが難しく、「D26の見た目上の数値の変化」を判定して、マクロを作動させたいと考えています。
このようなことは可能でしょうか?
(例えばD26のセル自体の変化ではなく、D26のvalueの変化を元に動作するworksheet関数を設定するといった方法があると良いのですが、、、)
皆様のお知恵を拝借いたしたく、宜しくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Excel 2016

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/25 02:19