• 締切済み

EXCELの自動リンク箇所の確認と解除方法

「開いているブックには他のファイルへの自動リンクが設定されています。このブックを更新し、他のブックへの変更を反映しますか」といったメッセージが表示されますが、リンクを設定した記憶はありません。編集メニューでリンク先を確認するとすでにリンク先のエクセルファイルは削除済になっています。「編集」「検索」ですでになくなっているファイル名を全てのシートで検索しても「見つかりません」となってしまいます。質問No.1322325 05-04-10 回答者ja7awuさんのマクロでもリンク解除できませんでした。解除方法をご存知の方は教えてください。

みんなの回答

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.6

なかなかうまくいかないようですね・・・。 私の場合、検索でも見つからなかったので、コピーしたブックを使って、シートを一枚ずつ削除(または、全てクリア)し保存・開く、を繰り返して参照のあるシートを特定し、該当シートが見つかったら、転記された可能性がある式の部分削除を削除しながら、幽霊の存在を探して、式の入ったセル(範囲)を特定してから、元のシートの式を修正しました。 この場合、どのセルにも他のブックへのリンクは設定されていませんでしたが、エクセルの内部に変な情報が残っていたのが原因かと思います。 どうしてもだめなら、上記のように不正なセルを特定して削除するしか無いと思います。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

このようなことを書くのは心苦しいのですが、 ja7awu さんの http://oshiete1.goo.ne.jp/kotaeru.php3?q=1359989 の#2 には、  Set Rng = Sh.Cells.Find(".xls]") としかありません。これは、現在設定されている、検索オプションのままで使うという設定です。検索が値に設定されていたら、見つかりません。通常は、すべて、Findメソッドのオプションをマクロに入れなくてはならなかったはずですが……。 とりあえず、ダメもとで、こちらのマクロもためしてみてください。ダメだったら、他に考えます。 '<標準モジュール>に登録してから、ReferenceFormulaSearch を実行してください。 '------------------------------------------ Private i As Long Sub RefrenceFormulaSearch() Dim wsh As Worksheet Dim j As Long  For Each wsh In ActiveWorkbook.Worksheets   Call SearchRefFormula(wsh)   Call SearchRefShapes(wsh)   With ActiveWorkbook   For j = 1 To .Names.Count   If InStr(.Names(j).RefersTo, ".xls]") Then    .Names(j).Delete    i = i + 1   End If Next j End With  Next wsh  MsgBox i & " 個処理しました。" End Sub Private Sub SearchRefFormula(ByVal wsh As Worksheet) Dim myFirstAdd As String Dim c As Range Const myFind As String = ".xls]"   With wsh.UsedRange    Set c = .Find(myFind, LookIn:=xlFormulas, LookAt:=xlPart)   If Not c Is Nothing Then    myFirstAdd = c.Address    Do     c.Value = c.Value     i = i + 1     Set c = .FindNext(c)    Loop Until c Is Nothing   End If   End With End Sub Private Sub SearchRefShapes(ByVal wsh As Worksheet)  Dim j As Long  With wsh   For j = 1 To .Shapes.Count    With .Shapes(j)      If .DrawingObject.Formula <> Empty Then       .DrawingObject.Formula = Empty       i = i + 1      End If    End With   Next j  End With End Sub '------------------------------------------

mixjuice_mix
質問者

補足

連絡遅くなってすみません。まず私はWin2000、エクセル2000を使用しています。上記に「<標準モジュール>に登録してから、ReferenceFormulaSearch を実行してください。」とありますがよくわかりません。「コードの表示」を指定して「Private i As Long」以下をコピーして貼り付け、コード内で「F5」キーを押すと「実行時エラー'438'オブジェクトは、このプロパティまたはメソッドをサポートしていません。」となってしまいました。また別のPC(サーバ)のエクセル2003でファイルを開くとリンクのメッセージは表示されなくなります。

  • skdom
  • ベストアンサー率0% (0/1)
回答No.4

編集→リンクの設定→リンクの解除 で出来ませんか? もし出来ないとすると「名前」というやつが引っかかってるかもしれません。 挿入→名前→定義 で見て、訳のわからないものがあったら削除してみてください。

mixjuice_mix
質問者

補足

ご連絡遅くなってすみません。私のエクセルは2000なので「リンクの解除」はありません。定義でわけのわからないものを削除ということですが、ここには何か表示されているのですか?また、リンクに表示されているようなものはありませんでした。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

>質問No.1322325 05-04-10 回答者ja7awuさんのマクロでもリンク解除できませんでした。 これは、検索で見つかる場合には有効です。 今回のように検索しても見つからない場合は、リンクを削除できません。 どこにもリンクが無い場合、[編集]-[リンクの設定][リンク元の変更]でリンク先のブック名を開いているブックに変更すると消えるはずです。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?qid=685984,http://oshiete1.goo.ne.jp/kotaeru.php3?q=1359989
mixjuice_mix
質問者

補足

ご連絡遅くなってすみません。「ブック名を開いているブックに変更する」を実行しようとすると、「数式に不正な外部参照が含まれています。パス、ブック、範囲名、またはセル参照が正しいがどうか確認し、再度実行してみてください。」となってしまいました。 エクセル2000を使用しています。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.2

no1です。 書き漏らしました。 新規のファイル名は当然リンクに指定されているファイル名です。 複数のリンク先があれば同様に複数のファイルを作る必要が、あります。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.1

セルには目安になるような文字をいれて新規のファイルを作成して、 リンク先に指定されているフォルダに保存します。 その後、修正すべきファイルを開けば、リンク設定されているところに、 目安とした文字が出てきますので、その部分を修正して「編集」にて リンク先が消えた事を確認して保存します。 新規に作成したファイルは不要となるので、削除しておしまいです。

mixjuice_mix
質問者

補足

ご連絡遅くなってすみません。リンク先に指定されているフォルダに同様のエクセルファイルを作成してA1セルに「@@@」と入力してみましたが、どこにも「@@@」は表示されませんでした。リンクを開くでは新しいファイルを認識しています。エクセルは2000です。