こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ハイパーリンクのリンク先URLの一部変更

Excel2007です。挿入→ハイパーリンクでファイルサーバーのフォルダにあるPDFをリンクさせたのですが、フォルダを別のフォルダに移動させなければならなくなりました。リンクは全部で50近くあるのですが、URLの一部だけを一括で変更することはできないでしょうか?
VBAでも構いません。
宜しくお願いします。
※次回は、HYPERLINK関数でやろうと思います。・・・

投稿日時 - 2010-12-09 10:56:05

QNo.6372755

すぐに回答ほしいです

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

あらら、コピペミス。
分かると思うけど一応。(二重引用符)
> hLink.Address = Replace(hLink.Address, "Server1\OldFolder", "Server2\NewFolder"", , 1, vbTextCompare)
)

hLink.Address = Replace(hLink.Address, "Server1\OldFolder", "Server2\NewFolder", , 1, vbTextCompare)
)

投稿日時 - 2010-12-09 14:57:59

お礼

たびたびありがとうございました。
なんとか対処することができました。

投稿日時 - 2010-12-10 16:27:26

ANo.5

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

> 対象セルを選択してマクロTest1を実行でいいんですよね?
セルは選択しなくても、
アクティブなシートの全てのハイパーリンクを更新します。

> hLink.Address = Replace(hLink.Address, "Server1\OldFolder", "Server2\NewFolder")
> hLink.TextToDisplay = Replace(hLink.TextToDisplay, "Server1\OldFolder", "Server2\NewFolder")

若干、問題ありです。
このコードだと、大文字・小文字を区別されてしまうので、比較モードを vbTextCompare に。

あと、変換文字列数を 1 にした方が良いでしょう。
\Test\Testxx.PDF が \Test1\Test1xx.PDF に変換されたりしないようにね。

> hLink.Address = Replace(hLink.Address, "Server1\OldFolder", "Server2\NewFolder"", , 1, vbTextCompare)
)
> hLink.TextToDisplay = Replace(hLink.TextToDisplay, "Server1\OldFolder", "Server2\NewFolder"", , 1, vbTextCompare)
)

投稿日時 - 2010-12-09 14:28:58

ANo.3

Sub Test1()
Dim hLink As Hyperlink
For Each hLink In ActiveSheet.Hyperlinks
hLink.Address = Replace(hLink.Address, "Server1\OldFolder", "Server2\NewFolder")
hLink.TextToDisplay = Replace(hLink.TextToDisplay, "Server1\OldFolder", "Server2\NewFolder")
Next
End Sub

こんなんでどうかな?
バックアップ取ってからテストしてみて。

投稿日時 - 2010-12-09 12:27:10

お礼

ご回答ありがとうございます。
試したのですが、うまくいきませんでした。
挿入→標準モジュール→コードを貼りつけ(URL部分を修正)。
対象セルを選択してマクロTest1を実行でいいんですよね?

投稿日時 - 2010-12-09 13:30:42

ANo.2

NO1です。
勘違いをしていました(一旦リック解除後でないと有効にならない)ので回答は無視して下さい。

投稿日時 - 2010-12-09 11:13:44

ANo.1

ホームタブ→検索と選択→置換で変更できますが如何でしょうか。

投稿日時 - 2010-12-09 11:04:41

あなたにオススメの質問