アプリ版:「スタンプのみでお礼する」機能のリリースについて

リンクされているエクセルファイルを開くと
ほかのブックにリンクされていますと表示されますが,
リンクの外し方を教えてください。

A 回答 (3件)

手作業で削除する方法と、マクロにより一発で削除する方法を紹介します。




手作業の場合であって、どのシートのどのセルで参照しているか解らないと
いうのであれば、一応確認し易いように Ctrl + Shift + ` (@キー) で数式を表示させ
メニューから[編集]-->[検索]で「検索する文字列」に \[ を入力し、
[置換]を押し、「置換後の文字列」に何も入れないで「次を検索」を押します。
見つかったら内容を確認しながら[置換]を繰り返し実行します。
「見つかりません」が出たら、また Ctrl + Shift + ` (@キー) で戻します。

これを全てのシートで実行します。
次にメニューから[挿入]-->[名前]-->[定義]で、「参照範囲」が他ブックになっている
名前があれば、その名前を削除します。


◎ 上記の操作をマクロにより、一発で自動削除する方法

上記の操作が面倒な場合は、次の操作で一発で他ブック参照が、解除されます。

・ いずれかのシート名タブを右クリックして「コードの表示」を指定し、
 開いたコードウィンドウに下記コードをコピーして貼り付けます。

・ 貼り付けたコード内(1行目とか)にカーソルがある状態で、F5キーを押します。

・ これで、他ブック参照が全て解除になりますので、今貼り付けたコードを全て削除
 してから、右上の×で閉じ、シートに戻ります。 これで完了です。

まぁ、これで大抵は、解除されると思いますが、如何でしょうか?

Sub 他ブック参照解除()
Dim Sh As Worksheet
Dim Nm As Name
Dim Rng As Range
Dim Msg As String
Dim N As Integer
For Each Sh In Worksheets
  Set Rng = Sh.Cells.Find(".xls]")
  If Not Rng Is Nothing Then
    Do
      N = N + 1
      Msg = Msg & Sh.Name & "-" & _
        Rng.Address(False, False) & vbNewLine
      Rng.Formula = ""
      Set Rng = Sh.Cells.FindNext
    Loop Until Rng Is Nothing
  End If
Next Sh
For Each Nm In ThisWorkbook.Names
  If InStr(Nm, ".xls]") > 0 Then
    N = N + 1
    Msg = Msg & "名前 = " & Nm.Name & vbNewLine
    Nm.Delete
  End If
Next Nm
If N > 0 Then
  MsgBox N & "箇所のリンクを解除しました。" & vbNewLine & _
      vbNewLine & Msg, , "検索完了"
Else
  MsgBox "他ブックのリンク設定は、見つかりませんでした。", , "検索完了"
End If
Set Rng = Nothing
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
最初の方法で,削除できました。

お礼日時:2005/05/01 04:49

メッセージダイアログが出なければよいのでは?


[幽霊リンク]を削除する場合とは違うような気がしますね。

ツール-オプション-編集
リンクの自動更新前にメッセージを表示する
のチェックを外します。
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にさせていただきます。

お礼日時:2005/05/01 04:52

その文書と言うのは別ファイルからコピーしたものじゃないですか?


とりあえず対処法を以下に示します。「リンク式を解除したい」を見てください。

Excel 小技集
http://www.yoshikawa.com/skilup/ybs2010.htm
    • good
    • 0
この回答へのお礼

ありがとうございます
参考になりました。

お礼日時:2005/05/01 05:59

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