- ベストアンサー
エクセルでシートの参照先を調べたい
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。KenKen_SP です。 考え方は #1 ご回答のとおりで、検索時に ・数式を対象 ・検索値を調べるシート名 で曖昧検索すれば良いのだと思います。VBA でもこの応用で Find で探せ ば良いのですが、下記マクロでは数式セルを For Each ~ で順次チェック にしました。なんとなく。Find の方が多分早いかな? > または選択したセル範囲 シート単位ならともなく、選択したセル範囲ってかなり面倒そうです。 だから聞かなないでね(´・ω・`) ちなみに Range しか調べてませんよ。 ' // 他シートからアクティブシートを参照している数式の列挙 Sub Macro1() ' Dependents はアクティブ シートのみで、リモート参照をトレースできない ' 力技で数式に対象シート名があるかどうかで判定^^; Dim Sh As Worksheet Dim rUse As Range Dim C As Range Dim sShName As String Dim Result() As String Dim i As Long sShName = ActiveSheet.Name i = -1 For Each Sh In Worksheets If Sh.Name <> sShName Then ' 23: All Value Type Set rUse = Sh.Cells.SpecialCells(xlCellTypeFormulas, 23) For Each C In rUse If InStr(C.Formula, sShName) > 0 Then i = i + 1 ReDim Preserve Result(1, i) Result(0, i) = Sh.Name & "!" & C.Address Result(1, i) = "'" & C.Formula End If Next C Set rUse = Nothing End If Next ' 出力 If i > -1 Then Application.ScreenUpdating = False Set Sh = Worksheets.Add For i = 0 To UBound(Result, 2) Sh.Hyperlinks.Add Anchor:=Sh.Cells(i + 1, "A"), _ Address:="", _ SubAddress:=Result(0, i), _ TextToDisplay:=Result(0, i) Sh.Cells(i + 1, "B").Value = Result(1, i) Next i Sh.Columns("A:B").AutoFit Set Sh = Nothing Application.ScreenUpdating = True Else MsgBox "このシートを参照している数式はこのブック内にありません", vbInformation End If Erase Result End Sub
その他の回答 (2)
- KenKen_SP
- ベストアンサー率62% (785/1258)
#2 です。忘れてました。 > Set rUse = Sh.Cells.SpecialCells(xlCellTypeFormulas, 23) > For Each C In rUse ここで該当セルが無いとエラーが発生するので、適当にトラップして 下さい。先頭に On Error Resume Next で良いかと。 > マクロならこそ出来るワザですねえ。 Excel 2002 以降なら検索ダイアログに「全て検索」コマンドがあるので、 マクロを使わなくても同様のことはできますよ。 でも、確かお使いになってるのは Excel2000 でしたよね? それで、マクロにしました。
お礼
ありがとうございました。
- onara931
- ベストアンサー率25% (141/545)
他のファイルを参照にしているかどうかでしたら、全てのシートを選択して「=c:\」を検索すると見つかります。 (お使いのパソコン環境によっては、ドライブ名を複数指定して検索する必要があるかも)。 同一ファイル内でしたら同じようにシートを全部選択して、「!」を検索すると見つけることが出来ました。 ただ「!」が文中に多数使われていると時間がかかるかも。(^^;
お礼
あら、onara931さん、さきほど倍数の質問に答えておきましたよ。 で、わたしの質問は、「参照元」ではなく「参照先」なんですよぉ。 他シートを参照しているかではなく、他シートから参照されているかを調べたいんです。
関連するQ&A
- excelのワークシート分析ツール
excelのワークシート分析ツールで、セルを参照する時、参照先のセルの前に、ファイルの名前が表示されてしまい、参照をするのに手間取っています。ファイル名が表示されないようにするには、どうすれば良いのでしょうか?教えていただけると助かります!!
- 締切済み
- オフィス系ソフト
- エクセルでシート間の参照がされるところされないところがあるんです。なぜ?
こんにちは。 エクセルで,Sheet1のセルにSheet2のセルを参照しようと思います。 Sheet1のA1のセルに,Sheet2のA1のセルを参照しようとした場合,=Sheet2!A1と入力することになると思います。 しかし,セルには,「=Sheet2!A1」と表示されてしまうのです。 他のセルには,参照された文字,数字が入っているのに,ある特定のセルだけは,上記のようになってしまいます。 どのようにすれば解決できるのでしょうか。 お教え頂ければ幸いです。 宜しくお願いいたします。<(_ _)>
- 締切済み
- オフィス系ソフト
- EXCELの参照先ワークシートのセルにおける文字列への変換
恐縮ですが、MS-EXCELの次の操作方法をご教示下さい。 同じブックの中であるワークシートAの特定のセルaの文字列を他のワークシートBの特定のセルbで参照している場合、 このセルbにおいて、参照した文字列を、参照の形でなく、セルbの文字列に変換するには、どういう操作をすればよいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excelのシート参照をするにあたって
あるセルに他のシートを参照して集計する関数を記述しているのですが 参照先のシートが一度消去されてしまうと参照もとのセルに記述した 参照先シート名が自動的に#REFになってしまいます。 (例:「=Sheet1!A2」と記述していて「Sheet1」を削除すると「=#REF!A2」になってしまう) この現象はどうにか防げないものでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelのシート間の参照
エクセル初心者です。 エクセルでシートが2枚あるものを作成しました。 一枚目のシートのA1のセルの内容(言葉)を 二枚目のシートのB3のセルの内容に参照させたいと思い B3を選択し、セルのなかに =を入力して 一枚目のシートのセルA1をクリックしようと思ってもクリックができません。 二枚目のシートのセルB3を同じ二枚目のシートのB10にあてようとして =を入力してB10をクリックすると参照ができます。 =B10 セル内は↑のようになります。 どうしてできないのでしょうか? 困っています.教えてください。
- 締切済み
- オフィス系ソフト
- エクセルのセル参照について
エクセル2007でワークシートAのセル参照をワークシートBのセル(20カ所位)で設定しています。このワークシートBのセル参照のワークシート名をAから新たに作成するワークシートCに効率良く変更する方法はありますか?
- ベストアンサー
- その他MS Office製品
- excelでシートごと印刷しない設定にしたい
選択したEXCELブックを全シート印刷するツールがありまして こいつの運用で頭を悩ませています。 印刷範囲設定をかけたりシート非表示にすれば不要部分は印刷されないのですが、 表示する必要があるが印刷は不要というシートがあって、 一セルだけ印刷範囲に選んでそのセルを非表示とかにしても空白ページが1ページ印刷されてしまいます。 EXCELの特定シートをまるごと印刷しない設定とか方法は無いでしょうか。 EXCEL2016、マクロは使用可能です。 ツールは内部的に全シート選択&印刷をやっているのだと思います。 ツールを使わないという選択肢は無しです。 よろしくお願いします。
- 締切済み
- Excel(エクセル)
- 存在しないシートの参照について
こんにちは、 EXCEL2007を使用しています。 あるシートから存在しない他のシートを参照すると、参照エラー「#REF!」が表示されます。 このとき参照先のシートを追加してもエラー表示のままです。 該当シートが追加されたときに自動で更新させる方法はないのでしょうか? データメニューの「すべて更新」を行っても変化がなく、エラー発生セルでENTERすると更新されます。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excelのシート間の参照
Excelでシート間のセルの参照をしたいのですが、どのシートを参照するのかを すぐに変えることのできるようにしたいのです。 具体的には、A、B、Cという名前のシートがあり、シートDにおいて A1セルにA、B、Cいずれかの文字を入力すると、その下のセルの参照先が シートAのB1セルになるようにしたいのです。 とりあえず色々式を入れてみたのですが、すべて拒否されてしまいました。 たとえば ='A1'!B1 ='"A1"'!B1 とかです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルシートの参照について
エクセル2013を使用しています。 エクセルシート「H26会費」に数字が羅列されており、それを参照して別シートに 領収証がつくられています。領収証は数十地区分が並んでいて、金額のところに “H26会費”!B2 というように参照しているのですが、年度がかわるとそれぞれを H27に変更しなければならず、簡単な方法を考えています。 例えば、あるセルに「H27会費」など参照したいシートの名前をうちこんでおいて、領収証シートではすべてそのセルの名前にあるシートから参照する、というような。そのような ことはできるのでしょうか?もしできたら年度が変わっても簡単に参照できるなぁと考えているのですが・・・。また、別の方法でも簡単な方法がありましたら教えていただければと思います。 わかりづらい文章で申し訳ございませんが、よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
お礼
うっ!!すごい!! 何と、ブック内の他シートすべてを検索しちゃってるんですね。 マクロならこそ出来るワザですねえ。 しかも、それを配列にしてまとめて出力してハイパーリンクをつけるなんて至れり尽くせり・・・。 すごすぎます。恐れ入りました。 ありがとうございます。(o。_。)oペコッ.