プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (5件)

あらら、コピペミス。


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

hLink.Address = Replace(hLink.Address, "Server1\OldFolder", "Server2\NewFolder", , 1, vbTextCompare)
)
    • good
    • 2
この回答へのお礼

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

お礼日時:2010/12/10 16:27

> 対象セルを選択してマクロ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)
)
    • good
    • 0

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

こんなんでどうかな?
バックアップ取ってからテストしてみて。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/12/09 13:30

NO1です。


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

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

    • good
    • 0

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