• 締切済み

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

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

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答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

  • Excel2002で、ブック間リンクで困っています。

    Excel2002で、ブック間リンクで困っています。 ブック1とブック2があり、ブック1のあるセルに、 ='D:(ブック2)'!$D$2 と数式が入っています。 両方閉じた状態で、ブック1を開くと、「リンクを更新しますか?」という旨のメッセージが出て、「更新する」を押下すると、「更新できないリンクがある」(ブック2を開いていないので当然といえば当然ですが)とメッセージが出ますので、しかたなく「継続」にしています。 ところが、ブック1の中で、ブック2とは別のフォルダにある同名のファイル(ブック2)を参照しなければならなくなりました。 名前を変えればいいじゃないか、と言われそうですが、あるシステムから自動で出力、ネーミングされてしまうので、変更できないのです。 このままでは、 1.ブック2を開く 2.ブック1を開き、リンク値の更新 3.ブック2を閉じる 4.他のフォルダのブック2を開く 5.F9で再計算 ~繰り返し~ という手順で、実はこれが何十もあるのです。 参照先のブックを閉じた状態でリンク先のセル値を参照(更新)することはできないのでしょうか? バージョン2007ならできそうな感じですが、会社のものなので、勝手にバージョンアップもできず。。。。 裏技がありましたら教えてください。 何卒よろしくお願いします。

  • OpenOfficeOrgのCalcで、他ブックとリンクするとエラーが出ます

    OpenOfficeを使っています。Excelと似てるやつ(Calc)を使って、一つのブックに他ブックからの数値を参照した式をリンクで張りたいのですが、それができません。 ・Aブック ・Bブック ・Cブック とあり、たとえば Aブックのsheet1 A1セルに 「Aブックのsheet1 A2セル数値+Bブックのsheet1 A2セル数値+Cブックのsheet1 A2セル数値」 3ブックのA2セル入力値の合計を表示させたい リンク自体は張ることが出来、一度はきちんと計算結果も正常に表示されます。が、それを保存し次回以降開こうとすると、 「このデータには他のデータへのリンクがあります。データを更新しますか」 とメッセージが出てきて、それに「はい」と答えると処理が開始、そのまま待機状態になって操作不能、そして 「Runtime Error」 なにやら英文表示で、どうもOpenOfficeOrgに連絡しろって言っている、…らしい。メッセージが出ます。そしてそのままアプリケーションが閉じてしまいます。 再度開こうとすると「ファイルを復元しています」と言われ、心臓に悪い…や、開けるし使えますが。 ABC3ブック全て開き、「編集」→「リンク(リンクの編集)」で「更新」としても同様。 何回やっても同じ。 「データを更新しますか」 に「いいえ」と答えるとこの状態は起きませんが、それだとデータを訂正していっても計算式に反映されず、合計値がものすごくおかしくなってしまいます。 OpenOfficeOrgのCalcでは、他ブックの数値を参照した式 というのは事実上使用不能なのでしょうか? あっ、ちなみに使っているのはWinXPの…えーと、HOMEエディションSP3、だと思います。 ReadMeによればOpenOfficeOrgは3.1。

  • エクセルのbook間のリンクについて

    現在、エクセルで表を作っているのですが、なかなか思うようにいきません。どなたか、わかるかたがおられましたら、教えてください。 Aブック(毎日作成)とBブック(毎月の合計)があります。Aブックは1日から31日まで毎日作成し、その日の日付を名前にして保存しています。「A5月1日」のような感じです。Aブックには毎日20箇所のセルに数字を打ち込んでいます。 Bブックには、横の列に1日から31日までの日付が、縦の行は1から20まであります。 ここで、Bブックに、その日付ごとにAブックの20箇所のセルの数字をリンクさせたいのですが、毎日Aブックの名前が変わる(「A5月1日」「A5月2日」・・・)ため、なかなかうまくいきません。しかも、Bブックは毎月作るため、月が変わる度に、リンク先を変更しています。 何か、このリンクの作業を楽にする手段はないでしょうか?

  • Excelでブックのリンク更新がきかなくなりました

    一つのフォルダの中に、A~Eなどのブックがありまして、 そのブックの中の計算結果を、 読み込んで一覧するための「合計ブック」がございます。 ブック名はもちろん、まとめるフォルダ名も変えず、 都度「更新」して読み込んでおり、 その外側のフォルダ名を、更新するたびに日付を変えて管理してきました。 Mac Office2011 Excelで 今までOS10.6で使用してきたのですが、今回、10.13マシンに移行しました。 無理かと思ったのですがOffice2011が動いたので、使ったところ、 フォルダの日付名を変えると、リンクが切れる、という状態になりました。 「合計ブック」内のセルを見ると ='Macintosh HD....180831フォルダ:固定名フォルダ:[A.xls]シート名'!$A$1 となっていて、190831を180915とかに変えると、切れるようです。 今までと同じ使い方なのに何故?と困惑していますが 過去マシンでどうなっていたのかも確認することが出来ず。 絶対パスから、相対パスに変えればいけるのでは?と手動で変更してみましたが、 自動的に上記の絶対パスに戻ります。 リンクの編集、から再リンクしてみましたが、 やはりフォルダ名を変えると切れてしまいます。 (「更新」>「A.xlsが見つかりません」と出ます) 何が間違っているのでしょうか... ・環境設定や、何か設定を変えるとクリアできるのか  (以前、そうしたのを忘れたのかもしれません) ・仕様やOSが合わないこと等が原因で更新がきかない状態なのか ・もしくは仕様、はたまた不具合なのか など、原因および回避方法など、お分かりになるようでしたら、 どうかお教えくださいませ。

  • エクセル2010でブック間リンク貼り付けが出来ない

     エクセル2010を使っています。これまでブックから他のブックを参照(=を押して、他のブックに移動し、必要なデータのセルを選択し、Enterキーを押す)し、リンク貼り付けを行ってきましたが、今日エクセルを起動し、ブックを開いてリンク貼り付けをしようとしたら、貼り付けが出来なくなっていました。  =を押して、別のブックに移動し、カーソルを選択し、Enterキーを押すと下のカーソルに移動するだけで、=を押したブックに戻りません。  オフィスを削除し、再インストールしましたが直りません。よろしくお願いします。

  • エクセルのリンク貼り付けで・・・

    エクセルで、数字・日付の入った表を、同じブックのファイルに、リンク貼り付けした場合、元の表で数字を入力していないセルのリンク先が0で表示されるので、空白にしたいのですが・・・。 それと入力していない日付のセルも、リンク先に違う日付が表示されるので空白に出来るでしょうか?

  • 【Excel2003】ブック間のリンクについて

    Book1~Book12に月別の売上データが入っている状態で、違うBook13で月間および年間の集計を取ろうと考えました。 そこで、リンク貼り付けを利用してBook13のシート1~12に取りあえずBook1中の必要なデータを12シートすべてに貼り付けて、その後にシートごとでリンク先を変更しようと思ったのですが、編集⇒リンクの変更⇒リンク元の変更では、Book13の全てのシートのリンク先が変更されてしまいました。 シートごとにリンク先を設定することは不可能なのでしょうか? よろしくご教授お願いいたしますm(__)m

  • エクセル:ほかのデータソースへのリンクが更新できません

    Excelのあるbookのsheet(シートA)から、他のbook(シートB)へのリンクを設定しています。いったん完成させた後に、リンク先のbook(シートB)の保存位置(フォルダ)を変更しました。すると、シートAを開くごとに「このブックには、ほかのデータソースへのリンクが設定されています。」というダイアログが表示されるので「更新する(U)」ボタンをクリックしてSaveしましたが、再度そのブックを開くと同じ「このブックには、ほかのデータソース....」のダイアログが表示されてしまいます。なぜ、リンク先を更新できないのでしょうか?

  • エクセルで誤ってほかのブックを参照しているセルを見つけ出すには

    エクセルの2つのブックを結合してひとつのブックとして使っているのですが、開く都度「このブックにはほかのデーターソースへのリンクが含まれています。....」というメッセージが出ます。 メッセージが出るのは、計算式のセル参照が旧のブック名を参照してしまってるのが原因だとは、知っているのですが、膨大な行数、シート数のブック(3メガくらいの容量)ですので手作業で見つけて修正するのは大変困難で困っています。 何か、ブック全体から簡単におかしな参照をしている箇所を見つける方法はないのでしょうか。 一方のブックの改訂版がしばしば出されるためその都度、リンクした旧のブックから残りのシート部分をコピーして貼り付けるのですが、その都度 旧のブックを参照する計算式が残ってしまい、見つけて修正する作業に困っています。

  • リンクさせたくない(book間のコピー)

    エクセル2003においてbook1とbook2があります。それぞれのシートの名前は同じで[1-1]と[1-2]とします。 book1とbook2の[1-1]は同じ表で中身(書いてある文字)が違います。 book1の[1-2]にはbook1のシート[1-1]の列を参照して、例えば「しょうゆ」という文字がいくつ「みそ」という文字がいくつというように表示させています。 そこで、book2の[1-2]にもbook1の[1-2]と同じようにbook2の[1-1]を参照させて同じものを作りたいのですがbook1の[1-2]のシートをコピーするとbook1にリンクしてしまいます。また、book1の[1-2]の式の入った列を選択コピーして、book2の[1-2]に貼り付けてもリンクしてしまいます。 式が入っていてもリンクさせない、もしくは複数セルを一度にセルの中身だけコピーする方法はないのでしょうか。

専門家に質問してみよう