- ベストアンサー
《エクセル2000》そのセルがグラフに使われているかを探せますか?
任意のセルが、グラフに使用されているか否かが知りたいです。 グラフをクリックすると使用しているセルがわかる場合がありますが、「ワークシート分析」の「参照先」のように、セルから逆にたどる方法はあるでしょうか。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。Wendy02です。 ご確認を待たずに、こちらで決めて作ってしまいました。 以下の Const SHEET_NAME As String = "Sheet2" この部分を決めてください。複数のシートを検索することも考えましたが、負担が大きすぎるような気がしました。 まず、データ(数値)を選択して、マクロを起動させますと、検索し、メッセージボックスに、グラフ名(英語)と系列名が出てきます。マクロは、ボタンやショートカットにすると便利です。ヒットしない場合は、何も出てきません。 '-------------------------------------------- Sub TestGraph() Dim objChrts As ChartObjects Dim chrtSC As Object Dim objChrt As ChartObject Dim buf As String Dim mySh As String Dim myRng As String 'シート名を入れてください。 Const SHEET_NAME As String = "Sheet2" If VarType(ActiveCell.Value) <> vbDouble Then Exit Sub Set objChrts = Worksheets(SHEET_NAME).ChartObjects If IsObject(objChrts) = False Then Exit Sub For Each objChrt In objChrts For Each chrtSC In objChrt.Chart.SeriesCollection buf = Replace(chrtSC.FormulaLocal, "=SERIES(", "") buf = Mid$(Left$(buf, InStrRev(buf, ",") - 1), 3) mySh = Left$(buf, InStr(buf, "!") - 1) myRng = Mid$(buf, InStr(buf, "!") + 1) If Not Intersect(ActiveCell, Worksheets(mySh).Range(myRng)) Is Nothing Then MsgBox "グラフ名 :" & objChrt.Name & " 系列名 : " & chrtSC.Name End If Next Set objChrt = Nothing Next End Sub '--------------------------------------------
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。Wendy02です。 もう少し確認させてください。 ご質問を読んだ時点で、だいたいの方針は固まって既にある程度までVBAで作っていました。ただ、予想したとおり、別のシートのグラフということなので、それを、どう表示していくか、という具体的な詰めの段階で、チュウチョしています。最初は、そのグラフに飛ぶということも考えていましたが、それも問題があるのかなって思います。 #1さんのおっしゃるようなカラーリファレンスは、元より別シートですから無理ですが、そのあたりをどうイメージされていますか?可能なら、なるべくイメージに近づけたいと思います。 例えば、アクティブセルから、ボタンやショートカットで、単に、グラフの使用の「ある・なし」の表示するとか?グラフ名(グラフ番号)をメッセージボックスで出すとか?
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >そのセルがグラフに使われているかを探せますか? たぶん、VBAなら出来ます。 機能的には備わっていないので、それをVBAで行うことになるかと思います。ブック全体の中のグラフから、あるセルが含まれるか含まれないかを、それぞれのグラフの系列の中を全部探すというようなプログラムになるのではないかと思います。 単独のグラフなら、そのようなご質問をするはずがないので、複数のグラフの中で、一体、どれがどれか分らなくなったものを、簡単に見つけ出せる方法はないか、というご主旨ではないかと思いました。
お礼
こんばんは、ご推察の通りです。 他人が作ったファイルの修正で、該当ファイルは数千行にわたって数字が入っていて、別シートのグラフも2~3百はあると思います。 この大量のグラフを一々クリックしてチェックするのも大変な作業でして、今回質問させていただいた次第です。 もう少し、ご回答を待ってみます。ありがとうございました。
- wisemac21
- ベストアンサー率39% (171/429)
普通のグラフならばグラフエリアをクリックすると参照しているセル範囲がカラーリファレンスで囲まれます。 複雑なグラフではカラーリファレンスは表示されません。 グラフエリアを右クリックして、元のデータの系列タブで各系列の参照範囲を確認することはできます。
お礼
ご回答ありがとうございます。 はい、普通の方法はこちらだと思うのですが、今回は全く反対に、セルからどのグラフに使われているかを知りたいのです。
お礼
こんばんは、Wendy02さん。 昨日書き込みを拝見して、ハタと考え込んでしまいました。 グラフからセルをたどる場合はセルの色を変えるなり何なりすればいいですが、セルからグラフをたどる場合は一体どうすれば??? どうしたいかのイメージがわかずに本日ログインしてみれば、何と既にVBAが… いつもいつもお世話になっていて、ポイントどころか謝礼をお支払いしたいくらいなのですが、それができないのが何とも歯がゆいです。 本当にありがとうございました。