許せない心理テスト

質問です。

今、EXCELのハイパーリンク先としてmynetworkの中の別のパソコンにあるファイルを参照しているのですが、参照先を別のパソコンへ変更しようと考えておりまして、その場合、リンク先のアドレスを一括で変更できる方法はないかと思いまして質問させて頂きました。

参照ファイルが沢山あるため、全てを変更するのは、
とても大変でして、変更したい部分は、マシン名だけなのですが、なにか良い方法がありましたら、教えて頂けないでしょうか?
宜しく御願いします。

A 回答 (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
    • good
    • 2
この回答へのお礼

有難う御座いました。
助かりました。

お礼日時:2005/04/13 01:23

> リンク先のアドレスを一括で変更できる方法・・・・・



ハイパーリンク先は、編集-->置換 では、出来ないと思います。

「一括」となると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
    • good
    • 0

力技ですが新リンク先のPCに旧リンク先のPC名を付けることはできないのでしょうか?

    • good
    • 0

置換を使えばいいのでは?


編集>置換 または ctrl + h
です。
    • good
    • 1

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

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


おすすめ情報