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

このQ&Aに関連する最新のQ&A

アンサープラス

下記のサイトでは、ブック内の外部リンクを検索する方法が紹介されています。



・ブック内の外部参照 (リンク) を検索する - Excel
https://support.office.com/ja-jp/article/%E3%83% …

また、下記サイトでは、リンクを解除する方法が紹介されていますので、参考にしてみてください。
どちらも近年のバージョン(Excel2007・2010・2013・2016)に対応しています。

・Excel で外部参照へのリンクを解除する - Excel
https://support.office.com/ja-jp/article/Excel-% …

A 回答 (6件)

なかなかうまくいかないようですね・・・。



私の場合、検索でも見つからなかったので、コピーしたブックを使って、シートを一枚ずつ削除(または、全てクリア)し保存・開く、を繰り返して参照のあるシートを特定し、該当シートが見つかったら、転記された可能性がある式の部分削除を削除しながら、幽霊の存在を探して、式の入ったセル(範囲)を特定してから、元のシートの式を修正しました。

この場合、どのセルにも他のブックへのリンクは設定されていませんでしたが、エクセルの内部に変な情報が残っていたのが原因かと思います。

どうしてもだめなら、上記のように不正なセルを特定して削除するしか無いと思います。
    • good
    • 9

このようなことを書くのは心苦しいのですが、


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

'------------------------------------------

この回答への補足

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

補足日時:2005/05/15 22:39
    • good
    • 4

編集→リンクの設定→リンクの解除 で出来ませんか?


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

この回答への補足

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

補足日時:2005/05/15 22:34
    • good
    • 6

>質問No.1322325 05-04-10 回答者ja7awuさんのマクロでもリンク解除できませんでした。



これは、検索で見つかる場合には有効です。
今回のように検索しても見つからない場合は、リンクを削除できません。

どこにもリンクが無い場合、[編集]-[リンクの設定][リンク元の変更]でリンク先のブック名を開いているブックに変更すると消えるはずです。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=68598 …

この回答への補足

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

補足日時:2005/05/15 22:49
    • good
    • 1

no1です。


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

セルには目安になるような文字をいれて新規のファイルを作成して、


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

この回答への補足

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

補足日時:2005/05/15 22:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル 別ファイル内の特定のシートへリンクしたいのに

こんにちわ。

エクセルのリンクについて質問です。
使用しているのはExcel2000です

エクセルでインデックスを作成し、そのシートから
別に用意しているエクセルファイルへリンクをしたいのです。

Aファイルに1・2・3とシートがあった場合
INDEXにはそれぞれ1・2・3別々にリンク先を設け
それぞれをクリックするとしかるべきシートへ飛びたい。

今のところできているのはジャンプ先のファイルを「開くだけ」のようで、シート2の目次をクリックしても
シート1が開いてしまいます。
どうすればよいでしょうか???

Aベストアンサー

リンク先にあらかじめ「名前」を定義しておくと可能かと思います。
これは言ってみれば特定のセルに付ける「目印」のようなものです。
[名前の定義方法]
(1)「クリックしたら開かせたいシート」の先頭のセルを選択して
 メニューバー「挿入」-「名前」-「定義」をクリック。
(2)「名前」欄に、分かりやすい名称を入力して「OK」ボタンをクリック
(3)(1)~(2)を必要なだけ繰り返す。
[「名前」を使ったリンクの設定]
(1)リンクを設定したいセルをクリックして、ツールバー「ハイパーリンクの挿入」ボタンをクリック
(2)リンク先として目的のファイルを選択し(おそらくここまではご自分でできているんですよね?)、さらに「ブックマーク」ボタンをクリック
(3)定義した名前が出てくるので、リンク先の「名前」をクリック
(4)OKボタンをクリック
 →「アドレス」欄に「・・・・(ファイル名)#(名前)」と表示されているかと思います。これで「○○ファイルの××という名前をつけた場所」という、ピンポイント的なリンクが設定されます。
(5)「OK」ボタンをクリック
いかがでしょう?

リンク先にあらかじめ「名前」を定義しておくと可能かと思います。
これは言ってみれば特定のセルに付ける「目印」のようなものです。
[名前の定義方法]
(1)「クリックしたら開かせたいシート」の先頭のセルを選択して
 メニューバー「挿入」-「名前」-「定義」をクリック。
(2)「名前」欄に、分かりやすい名称を入力して「OK」ボタンをクリック
(3)(1)~(2)を必要なだけ繰り返す。
[「名前」を使ったリンクの設定]
(1)リンクを設定したいセルをクリックして、ツールバー「ハイパーリンクの挿入」ボタ...続きを読む

Q他のブックのマクロを呼び出すと他のブックの画面がアクティブになってしまう。

エクセルのツールバーにボタンを2つ作って他のブック1,2のマクロをそれぞれ割り当てました。
エクセルの表を開いておいてツールバーから
マクロ1(編集・出力)を呼び出すとブック1がアクティブになってしまい真っ白のシートが見えてしまいます。
もう一方のブック2のマクロ2はフォームを表示するマクロですがそちらはバックに隠れています。
以前同様にシート上のCH(13)を消すマクロを使っていた時もバックに隠れていました。
Application.ScreenUpdating = Falseを入れましたが一瞬ですがやはりアクティブになります。
見た目も悪いので表示したくないし、ブック1と2で動作が違う理由がわかりません、

マクロ1はこれです。
ブック1のcreateというマクロを使うのが目的です。
Sub Output()
Application.ScreenUpdating = False
Call create
MsgBox "完了しました。"
ThisWorkbook.Close
End Sub

マクロ2
Sub Form_Open()
Frm_Form1.Show vbModeless
End Sub

つまらない質問ですが気になるのでよろしくお願いします。

エクセルのツールバーにボタンを2つ作って他のブック1,2のマクロをそれぞれ割り当てました。
エクセルの表を開いておいてツールバーから
マクロ1(編集・出力)を呼び出すとブック1がアクティブになってしまい真っ白のシートが見えてしまいます。
もう一方のブック2のマクロ2はフォームを表示するマクロですがそちらはバックに隠れています。
以前同様にシート上のCH(13)を消すマクロを使っていた時もバックに隠れていました。
Application.ScreenUpdating = Falseを入れましたが一瞬ですがやは...続きを読む

Aベストアンサー

こんばんは。

Macro1 は、このようにすれば、何も表示せずに出来ます。
このマクロは、途中で中止しないようにしてください。Excelが残ってしまいます。もし、残ってしまったら、タスクマネージャを立ち上げて、プロセスで、削除してください。

>以前同様にシート上のCH(13)
もしかしたら、Chr(10) のことではないでしょうか?


Sub Test1()
Dim bkName As String
Dim xlApp As Object
Dim wb As Workbook
Dim sh As Worksheet

 'ブックの名前を入れます。
 bkName = ThisWorkbook.Path & "\TEST1.XLS"
 If Dir(bkName) = "" Then
  MsgBox "該当するブックがありません。", 48
  Exit Sub
 End If
 On Error GoTo ErrHandler
 Set xlApp = CreateObject("Excel.Application")
 
 With xlApp
  Set wb = .Workbooks.Open(bkName)
  Set sh = wb.Worksheets("Sheet1")
    .DisplayAlerts = False
   sh.Cells.Replace What:=Chr(10), Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False
    .DisplayAlerts = True
  Set sh = Nothing
  wb.Close True
  Set wb = Nothing
  xlApp.Quit
 End With
ErrHandler:
 Set xlApp = Nothing
End Sub


マクロ2のほうは、

たとえば、通常は、こんな風でよいはずですが、ちょっとはっきりしたことが言えません。
Me とは、UserForm のことです。

Private Sub UserForm_Activate()
 AppActivate Me.Caption
End Sub

こんばんは。

Macro1 は、このようにすれば、何も表示せずに出来ます。
このマクロは、途中で中止しないようにしてください。Excelが残ってしまいます。もし、残ってしまったら、タスクマネージャを立ち上げて、プロセスで、削除してください。

>以前同様にシート上のCH(13)
もしかしたら、Chr(10) のことではないでしょうか?


Sub Test1()
Dim bkName As String
Dim xlApp As Object
Dim wb As Workbook
Dim sh As Worksheet

 'ブックの名前を入れます。
 bkName = ThisWorkbook.Path...続きを読む

Qエクセルで数式は残したまま他シートからのリンクを一括で外す方法

こんにちは。
早速ですが、ご教示ください。
実はエクセルでデータ資料をいくつものシートで作成しています。そのシートには他のシートからリンク貼り付けがなされたり、独自の数式が入っていたりします。
今回教えていただきたいのは、エクセルのシート(いくつもあります)から一括でリンク貼り付けだけ外す方法についてです。(リンク貼り付けを外した結果、値のみを残します。)但し、このシートの中にはそれぞれ独自の数式が入っており、この数式は残したいのです。(従って、シートをコピーして形式を選択して値のみ貼りつけるとリンクは外れますが、数式も外れてしまうので、これでは困るのです)
分かりにくり文章で恐縮ですが、数式を残しつつリンク貼り付け部分を外すにはどのようにすれば良いかご教示ください。

Aベストアンサー

うまく説明できているか不安ですが・・・

(1)リンクをはずしたいシートをコピーする。(シートのコピー)
   (Sheet1ならSheet1(2)ができると思います。)
(2)コピーしたシートで
   「編集」→「置換」
   検索する文字列: *!*
   置換後の文字列:何も入力しない
   ですべて置換する。
   (この段階で、リンクしているセルは何も入力がなくなり、数式のみ残っている)
(3)元のシートで全体をコピーして元の場所に値のみ貼り付け
   (このシートは値しかなくなります。)
(4)コピーしたシートで全体をコピーし、
   元のシートで「空白セルを無視する」をチェックし、数式のみ貼り付け

でどうでしょうか?
うまくいかない場合は、補足してください。

Qエクセルで、他のファイルをリンクする際、ファイル名だけをオートフィルできませんか?

たとえば、EXCELで

A1に、  〇1.xls  というファイルの  シート1   の   B5 セルを参照した場合

         A                  B                C
1  [〇1.xls]シート1!$B$5     [〇2.xls]シート1!$B$5      [〇3.xls]シート1!$B$5
2  [〇2.xls]シート1!$B$5
3  [〇3.xls]シート1!$B$5
4  [〇4.xls]シート1!$B$5


A1セルからオートフィルしたら、A4セルまで、もしくはC3セルまで

ファイル名だけ変わる、というようなことはできないでしょうか?

ちなみに、EXCEL2003です。


詳しい方いましたら、どうぞよろしくお願いいたします。

Aベストアンサー

以下のような操作を試してください。

A1に
#=[〇1.xls]
としてオートフィル
オートフィルは、行方向、列方向どちらも可
オートフィル範囲が選択状態のまま、編集メニューの「置換」で
]

]シート1!$B$5
に「すべて置換」
再度
#=

=
に「すべて置換」

Qエクセルでリンク貼り付けしたリンク先のシート名を可変にしたい

エクセルでリンク貼り付けをすると、「='[リンク先.xls]リンク先シート名'!G37」の様な式になりますが、この式の中のリンク先シート名の部分を、例えばどこかに書いておいてそこを参照するとか、とにかく可変にしたいのです。
エクセルのバージョンは2000です。
よろしくお願いします。

Aベストアンサー

A1にシート名があるなら
=INDIRECT("[リンク先.xls]"&A1&"!G37")

Qエクセルでの他のブックのデータをリンクしたい

エクセルで他のブックのデータを使ってグラフを作りたいのですが、どのようにしたらいいのでしょうか?シートをコピーして、データだけリンクさせる方法ならあるようなのですが・・・

Aベストアンサー

まず、グラフを作りたいブックと元のデータがあるブックを開いてください。
次にグラフを作りたいブックで『グラフウィザード』を開き、『元データのデータ範囲』を選択するときに、データがあるブックのデータの範囲を選択するだけで大丈夫です。
そうするとデータ範囲が [Book1]Sheet1!~~ といった感じデータのあるブック名が指定され、直接グラフにできます。

QHTMLで、エクセルのワークシートへリンク

HTMLで、エクセル内のワークシートへリンクさせたいのですが
その絶対パスの書き方がわかりません。

C:\Documentsから始まって~\エクセル\●●.xlsで、
エクセルフォルダ内、
●●のエクセルファイルまでは開くことができました。
で、さらに、
そのエクセルの中のワークシートまで指定したいのですが、
ワークシートのパスは
どのように書けばいいのでしょうか?

●●.xls\ワークシート名
では開きませんでした。

よろしくお願いします。

Aベストアンサー

IEのみですが
<a href="test.xls#Sheet2!A1" >エクセルシート2</a>
のようにしてみて下さい。
特に必要なくてもセルまで記述して下さい

QExcelで他ブックとリンクがかかるのは?

Excelで他ブックとリンクがかかるのは?

 Excelのある特定のブックを開くとき、「開いているブックには、ほかのファイルへの自動リンクが設定されています。・・・・」というメッセージが出ます。調べたところそのブックは他の特定のブックにリンクがかかっているらしいことが分かりました。
 しかし、これまで「リンク」に関係しそうな操作をした記憶がないのに、以前にはなかったのに最近になって上記のメッセージが出るようになったわけです。

 このような「リンク」はどのような場合に発生するものかご教示いただきたいと思います。たとえば、セル中に記述されている式の中で他のブックを引用しているとか、そういったケースはほかにもあるのかどうかということです。
 またもし式の中で引用しているとすると、そのセルがどこにあるか簡単に見つける方法があるものかどうかもお教えいただけたらありがたいです。

Aベストアンサー

>、[検索]を利用してリンク先のブック名を検索したのですが、一つも出てきません。これは幽霊リンクということでしょうか。

検索で見つからない場合は、その可能性がありますね。
先に紹介したサイトの『3. 数式の検索 』の項目に検索方法が書かれているので、全てのシートを検索しても見つからない場合は、ブックの不具合による幽霊リンクの可能性があります。

>。[編集]-[リンクの設定]で示される表を利用すると解除できるのでしょうか?

この設定の変更で解除可能だと思います。
[リンク元の変更]を選んで、リンク元のブックを「自ブック(自分自身)」に設定すると、外部ブックへのリンクが消えるので、ブックを開いた時の警告が消えるはずです。

先に私が紹介したサイトにも
『リンク式がどこにもない場合、[編集]-[リンクの設定][リンク元の変更]でリンク元を自ブックに変更するとリンクが解消することがあります。』
『それでも解消されない場合、[リンク元の変更]、[今すぐ更新]、[リンク元の変更]、[今すぐ更新]、[リンク元の変更]、[今すぐ更新] のように、リンク元を自ブックに変更する操作を数回繰り返すと解消することがあります。』
と、記載があります。

>、[検索]を利用してリンク先のブック名を検索したのですが、一つも出てきません。これは幽霊リンクということでしょうか。

検索で見つからない場合は、その可能性がありますね。
先に紹介したサイトの『3. 数式の検索 』の項目に検索方法が書かれているので、全てのシートを検索しても見つからない場合は、ブックの不具合による幽霊リンクの可能性があります。

>。[編集]-[リンクの設定]で示される表を利用すると解除できるのでしょうか?

この設定の変更で解除可能だと思います。
[リンク元...続きを読む

Qエクセルファイルにあるシートのリンクだけを切りたい

タイトルの通りです。
いつのまにか共有フォルダにあるエクセルファイルと
リンクが結ばれていました。
共有フォルダにあったファイルは必要なくなったので、
削除しましたが、デスクトップにあるエクセルファイルの
シートにかかっているリンクは生きています。

このリンクを切りたいのですが、ワークシート化しており、またたくさんのタブを作っていますので、何か
一度ですべてのシートのリンクを切れる方法があれば
教えてください。

以上、よろしくお願いいたします。

Aベストアンサー

OFFICEのバージョンはXPか2003でしょうか?
それなら「編集」「リンクの設定」でリンク元のファイルを選択して「リンクの解除」を押してください。

Qシート全体を他のブックのシートとリンクさせたい

エクセル2010を使っている者です。

(1)Aファイル中のあるシート全体をBファイル中の指定したシート(別ファイルになってますが、フォーマットはほぼ同じです)とリンクさせ、外部参照してデータを取り込めるようにすることは可能ですか?

(2)また、AファイルがBファイルのデータを外部参照するというよりは、Aファイル、Bファイルの当該シートに変更があった場合は、お互いに変更箇所を取り込めるようにするこは可能ですか?
(これは外部参照ではなく、共有というのでしょうか)


どちらか片方であってもありがたいので、ご教授願います。

Aベストアンサー

基本の手順としては
「元」になるAブックの該当シートのセル(セル範囲)をコピー
「先」となるBの該当セル(セル範囲)に形式を選んで貼り付けの「リンク貼り付け」する
ことで、元から先にデータをリンクします。

#その後必要の範囲に応じて、書式を工夫したりもうちょっと数式を作成したりして、見た目を整えます。



エクセルのデータ参照の流れは、常に「元」から「先」への一方向だけです。
双方向にリンク(反映)する方法はありません。

エクセルでは通常、全ての「元」となるマスタデータベース(リスト)を1本(1つのシートに)用意、全ての編集や修正、追加等はすべてマスタのリストに対して行い、帳票(AのシートやBのシート)は、共にマスタから必要なデータを参照して「表示するだけ」という具合に作成するのが上手なエクセルの使い方です。


ご相談のように双方向のデータ反映がどうしても必要であれば、たとえばアクセスのように、そういう事ができるデータベースソフトを利用します。
まぁ出来ると言えばエクセルマクロを駆使して、そういう事ができるようコツコツ手作りする事もやればできますが、大概は苦労ばっかり多くて益はありません。

基本の手順としては
「元」になるAブックの該当シートのセル(セル範囲)をコピー
「先」となるBの該当セル(セル範囲)に形式を選んで貼り付けの「リンク貼り付け」する
ことで、元から先にデータをリンクします。

#その後必要の範囲に応じて、書式を工夫したりもうちょっと数式を作成したりして、見た目を整えます。



エクセルのデータ参照の流れは、常に「元」から「先」への一方向だけです。
双方向にリンク(反映)する方法はありません。

エクセルでは通常、全ての「元」となるマスタデータベース(...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報