With Bing 参照元のトレース全件
タイトル前に表示された # マークは、初版(第5版)掲載済の記事を一部、見直して、編集しています。
ネットで記事を読んでいると、最近はChatGPTを使って、プログラムを作成するハナシが出ている。ちょうど、そんな時、合計行は下の複数行の合計となる表を作成していて、また、この複数行が一定ではなく、1行のときもあれば、5行以上になるような表なのだ。そこで、合計行のSUM(A1:B5)の数式をいちいち書換をして終わったのだが、2000行近くあり、検証をしなければならない。それが、数千行に及ぶと、当然、入力モレが発生しているだろうことは、容易に想像できる。
上図の赤丸の付いた部分の計算式の参照範囲が正しいかどうかを判定したい
「参照元トレース」機能では1セルしかできない
本当はこうなって、計算式の入ったセル全件に対して実行したい
そこで、Excelの「参照元トレース」機能を使い、その合計値が正確に合計値を出すための範囲を参照しているかどうかの確認を行いたいのだが、この機能は1セル分しかできない。これでは数千行におよび同様の計算式の検証に時間がかかってしまう。これを1セルではなくて、計算式の入った全セルに対して行いたいと思ったわけだ。そうなると、マクロを作成する必要が出てくる。そこで、それならば、話題の「ChatGPT」でマクロを作ってみる実験をしてみることにした。まだ、ココロに余裕がある(笑)
質問文は「Excelde参照元のトレース 一括 マクロを教えて」とした
そうすると、解答のマクロ文を含めて、答えてくれる。そこで、このマクロ部分をコピペする。
Alt + F11 のショートカットキーでマクロ編集機能が立ち上がるので、上図では右の白い部分に貼り付ける。これで完成となる。
マクロを起動する前に、計算式が入っている「列全体」を選択しておく
マクロを起動させる場合、「開発」-「マクロ」を選ぶと、別画面がポップアップする
計算式が入力されている部分に対し、「参照元のトレース」が実行されている
<参考:マクロ文>
Sub TracePrecedents()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange
If rng.HasFormula Then
rng.ShowPrecedents
End If
Next rng
End Sub
ちょっと、話題のChatGPTを使ってのマクロ作成で、成功例だ。これはとても良さそうだ。併せて、無料のBingのテストもできている。