• 締切済み

ブックの更新できないリンク

Excelで資料の提出を受け、こちらでそれを使用・加工しようと考えていますが送信者が自分の別のソースのデーターを使用しそれを計算式で計算させるように設定して提出してきました。 私の方には当然そのソースはありませんのでこのSheetを開くと「このブックには更新できない・・・・」と表示されリンクの編集を見るとリンク元の情報は表示されますが提出を受けた資料のリンク先を見つけるにはどのようにするのでしょうか? 見た目は数字を手入力したように見えますが、実際は計算式が入っていると思います。記入箇所が沢山あって一個一個カーソルを当ててどのセルに計算式が入っているかを調べるのでは膨大な時間を要するのでリンク先を特定する良い方法があれば教えてください。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

リンク先を見つけてもできることは何もないので、リンクの編集から「リンクの解除」を行います。 リンクのセルは無条件に値に変換されます。

meganepan
質問者

お礼

せっかくのご指導でしたがリンク編集で「リンクの解除」がアクティブになっておらず実行できませんでした。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

他ブックを参照している算式を抽出するマクロを作ってみました。 質問の意味を誤解していなければいいんですが。当方、Excel2010です。 新しいブックを開いて、そのブックに下記のマクロを標準モジュールに貼り付けます。(ALT+F11 でVBE画面に移動し、メニューの「挿入」>標準モジュールを行い、標準モジュールに貼り付けます。) マクロの最初の行の、調べるブック名を書き換えてください。下記の「調べたいブック.xlsx」部分です。   Const BookName = "調べるブック.xlsx" 調べたいブックも開いて、マクロをセットしたブックから「getSansyoRange」を実行します。  A列:参照を見つけたセルのシート名とセル番地  B列:参照式の内容   出力例を添付図として貼り付けておきます。 Sub getSansyoRange()   Const BookName = "調べるブック.xlsx" '■■ 調べるブック名にする      Dim ws As Worksheet     '調べるブックのワークシート   Dim rg As Range       '調べるブックのセル   Dim rw As Long       '出力行   Dim fstAddress As String  '最初に見つかったセルのアドレス      Range("A:B").ClearContents      For Each ws In Workbooks(BookName).Worksheets     Set rg = ws.UsedRange.Find(What:="xls*", _           LookIn:=xlFormulas, LookAt:=xlPart)          '見つかったら     If Not rg Is Nothing Then       fstAddress = rg.Address              Do      '同じセルになるまで調べる                  rw = rw + 1  '出力         Cells(rw, "A") = ws.Name & " " & rg.Address(0, 0)         Cells(rw, "B") = Mid(rg.FormulaLocal, 2)                  Set rg = ws.UsedRange.FindNext(rg)       Loop Until rg.Address = fstAddress     End If   Next End Sub

meganepan
質問者

お礼

ご指導ありがとうございました。私しの方もExcel2010ですのでご指導に従い行ったつもりですが何回やっても結果が出ませんでした。 私がVBAについては全くの素人ですので何か肝心なことが出来ていないのだと思います。 複数回行っても「実行時エラー」になってしまいました。Excelのバージョンが古いのでxlsxをxlsに変更してみましたがせっかくのご指導にお応えできませんでした。 調査するファイル名が、【***】計画・実績対比表という名前ですが「実行時エラー」の表示から多分ご指導いただいた9行目のFor Each ws In Workbooks(BookName).Worksheetsの()内の記載が間違っいるのだとは感じていますが訂正できませんでした。 時間的な余裕もあまりありませんので、問題のブックをコピーして複製を作り手数ですがシート1枚ごとに表の左上を右クリックして全体を選択しコピー → セルA1に形式を選択して貼り付け → 値 で今までの上に同じものを値に書き直し一旦ブックを閉じて再度開いた場合に支障なく開ければこのシートの中にリンク先が記載されたセルあることになりますので矢印キーで全部のセルを順に選択しリンク先が表示されたセルを特定し元のブックの同じ個所を訂正することで切り抜けました。ExcelのVBAの勉強の参考になる本や資料があれば教えていただければ幸甚です。 私のやりかたが不十分なのでベストアンサーを差し上げれなくて恐縮いたしております。

関連するQ&A