• ベストアンサー

excel 数式に含まれている名前を置換するには、

こんにちは、 excelで、別EXCELからリンク貼り付けした数式に含まれているセルがあります。その数式内にあるファイル名を置換したいのですが、多数のセルがあるので一揆にできないかと考えています。何かいい方法がありましたら教えてください。 例) faile01.xls    file02.xls(参照元) A1:「\file02.xls\A1」 A2:「\file02.xls\A2」 A3:「\file02.xls\A3」 という数式が入っている。 上記で、使途全体より数式内にあるfile02.xlsを一気にfile03.xlsに変更する。 よろしくお願いします。 A1:

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

エクセルの後のバージョンでは置換で式の中の文字列も 置換してくれるようになったのではないかと思いますが VBAでやって見ました。1例では旨く行きましたが Sub test02() Dim cl As Range t = "'C:\My Documents\[aaa.xls]Sheet1'!" s = "'C:\My Documents\[b2.xls]Sheet1'!" For Each cl In Selection If cl.HasFormula Then p = InStr(cl.Formula, s) If p = 0 Then GoTo p01 sl = Len(s) fl = Len(cl.Formula) p1 = InStr(cl.Formula, "!") cl.Formula = "=" & t & Mid(cl.Formula, p1 + 1, fl - sl) ' MsgBox cl.Formula End If p01: Next End Sub 置換前の式が含まれているセル範囲を、範囲指定して 上記を実行してください。 ツール-マクロ-VBEでVBE画面になり、そこのメニューの挿入-標準モジュールで出てくる画面に、上記を 貼りつけ、置換前の式が含まれているセル範囲を、範囲指定して、メニューの実行をクリック。

その他の回答 (4)

  • miwaki
  • ベストアンサー率36% (14/38)
回答No.5

#3の回答でよいのですが、この操作に先立ち、file03.xlsを読み込んでおくことをお勧めします。どこかのドライブに入ったままでもできないことはありませんが、ものすごく時間がかかることがあります。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#2です。 #3の方の教えていただいたマクロの記録は、下記の通りでした。こちらの方がよりVBAらしいので、上げておきます。操作の途中でSheet名を聞いてくるのだが 下記には現れてないのだが、 Application.Worksheets("sheet1").Activateと限定も 出来るようです。 またリンク情報の入っているセルがないときは、編集-リンクの設定が開けないようです。 Sub Macro1() ActiveWorkbook.ChangeLink Name:="C:\My Documents\aa1.xls", NewName:= _ "C:\My Documents\aa3.xls", Type:=xlExcelLinks End Sub

回答No.3

編集/リンクの設定/リンク元の変更ボタンをクリックし、 リストからfile2.xlsを選択すれば変更できます。

  • OMP
  • ベストアンサー率23% (132/553)
回答No.1

文字通り「置換」すればいいんじゃないですか? 置換する場所を複数選択してCtrl+Hで置換画面を開いて 検索:file02 置換:file03 で、すべて置換すればできませんか?

関連するQ&A