- ベストアンサー
EXCELのハイパーリンク先の変更について
質問です。 今、EXCELのハイパーリンク先としてmynetworkの中の別のパソコンにあるファイルを参照しているのですが、参照先を別のパソコンへ変更しようと考えておりまして、その場合、リンク先のアドレスを一括で変更できる方法はないかと思いまして質問させて頂きました。 参照ファイルが沢山あるため、全てを変更するのは、 とても大変でして、変更したい部分は、マシン名だけなのですが、なにか良い方法がありましたら、教えて頂けないでしょうか? 宜しく御願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
すみません。 ちょっと、訂正です。 コードの先頭に Option Compare Text を1行 追加しただけですが、 こちらのコードをコピーして使ってください。 大文字/小文字 識別の関係です。 > リンク先のアドレスを一括で変更できる方法・・・・・ ハイパーリンク先は、編集-->置換 では、出来ないと思います。 「一括」となるとVBAで処理することになるかと思います。 次の操作することにより、一発でブック内のハイパーリンク先が、全て置換えに なりますので、宜しかったら、詳しく手順を書きますので、テストしてみてください。 【 操作手順 】 ・ いずれかのシート名タブを右クリックして「コードの表示」を指定し、 開いたコードウィンドウに下記コードをコピーして貼り付けます。 ・ コードの設定事項で「検索文字列」と「置換え文字列」を指定します。 (現在は、アドレスに含む abc の部分を xyz に置換えるという設定です。) ・ 貼り付けたコード内(1行目とか)にカーソルがある状態で、F5キーを押し実行ます。 ・ これで、ハイパーリンク先が置換えになりますので、今貼り付けたコードを全て削除 してから、右上の×で閉じ、シートに戻ります。 これで完了です。 ハイパーリンク先が、変更になっているか、確認してみてください。 Option Compare Text Sub ChgLinkAdd() '全シート ハイパーリンク先置換え '-------- 設定事項 -------------------- Const Old_Add_Part = "abc" ' <------ 検索文字列 Const New_Add_Part = "xyz" ' <------ 置換え文字列 '------------------------------------- Dim Sh As Worksheet Dim Hyp As Hyperlink Dim Rng As Range Dim Cnt As Long For Each Sh In Worksheets For Each Hyp In Sh.Hyperlinks If InStr(Hyp.Address, Old_Add_Part) > 0 Then Hyp.Address = Replace(Hyp.Address, _ Old_Add_Part, New_Add_Part, , , vbTextCompare) Cnt = Cnt + 1 End If Next Hyp Next Sh MsgBox "ハイパーリンク先 " & Cnt & _ " 箇所を置換えしました。", , "置換え完了" End Sub
その他の回答 (3)
- ja7awu
- ベストアンサー率62% (292/464)
> リンク先のアドレスを一括で変更できる方法・・・・・ ハイパーリンク先は、編集-->置換 では、出来ないと思います。 「一括」となるとVBAで処理することになるかと思います。 次の操作することにより、一発でブック内のハイパーリンク先が、全て置換えに なりますので、宜しかったら、詳しく手順を書きますので、テストしてみてください。 【 操作手順 】 ・ いずれかのシート名タブを右クリックして「コードの表示」を指定し、 開いたコードウィンドウに下記コードをコピーして貼り付けます。 ・ コードの設定事項で「検索文字列」と「置換え文字列」を指定します。 (現在は、アドレスに含む abc の部分を xyz に置換えるという設定です。) ・ 貼り付けたコード内(1行目とか)にカーソルがある状態で、F5キーを押し実行ます。 ・ これで、リンク先アドレスが、全て置換えになりますので、今貼り付けたコードを 全て削除してから、右上の×で閉じ、シートに戻ります。 これで完了です。 ハイパーリンク先が、変更になっているか、確認してみてください。 Sub ChgLinkAdd() '全シート ハイパーリンク先置換え '-------- 設定事項 -------------------- Const Old_Add_Part = "abc" ' <------ 検索文字列 Const New_Add_Part = "xyz" ' <------ 置換え文字列 '------------------------------------- Dim Sh As Worksheet Dim Hyp As Hyperlink Dim Rng As Range Dim Cnt As Long For Each Sh In Worksheets For Each Hyp In Sh.Hyperlinks If InStr(Hyp.Address, Old_Add_Part) > 0 Then Hyp.Address = Replace(Hyp.Address, _ Old_Add_Part, New_Add_Part, , , vbTextCompare) Cnt = Cnt + 1 End If Next Hyp Next Sh MsgBox "ハイパーリンク先 " & Cnt & _ " 箇所を置換えしました。", , "置換え完了" End Sub
- shizuku1023
- ベストアンサー率52% (33/63)
力技ですが新リンク先のPCに旧リンク先のPC名を付けることはできないのでしょうか?
- earthlight
- ベストアンサー率27% (284/1031)
置換を使えばいいのでは? 編集>置換 または ctrl + h です。
お礼
有難う御座いました。 助かりました。