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

解決済みの質問

Excel97で、ハイパーリンクを一括変更するには?

Excel97で、ハイパーリンクを一括変更するには?

古いソフトで大変恐縮ですが、ネットワーク上で、サーバAに保存されたWordデータにリンクされる様にExcel97でハイパーリンクを設定しています。(このリンクはハイパーリンク関数ではなく直接入力したものです。)
この度、このリンク先のWordデータの保存先を別のサーバBに変更することになりました。そこでExcelのハイパーリンクも変更したいのですが、データ数が膨大な為、一括で変更できる方法はありませんか?

過去の質問で似たような回答がありましたが(http://okwave.jp/qa/q1323629.html)、このコードの「Replace」はExcel97VBAでは使用不可だと思います。「Replace」の替わりに「Application.WorksheetFunction.Substitute」を使用してみましたが、「Substitute」でコンパイルエラーがでてしまいます。なにか足りない引数等があるようでしたらアドバイス下さい。

なお、Wordデータは日付をデータ名にして年代ごとに保存されています(例:¥¥サーバB¥2009¥0101.doc)。ちなみにExcelでは、A列にハイパーリンク、B列にデータ名を記述してあります。VBAではなく関数を利用して変更する方法があればそれでもかまいません。(例えばC1セルに「¥¥サーバB¥2009¥」まで記述して、A2セルに「$C$1 & B2 & .doc」みたいな記述をしてそれをA3セル以下全部コピーする事って可能でしょうか?)

投稿日時 - 2010-01-21 15:46:48

QNo.5610991

すぐに回答ほしいです

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

手元の2003で試したので、97で通用しないのかも知れませんが。

参照された過去の回答にあるコードで、
      Hyp.Address = Replace(Hyp.Address, _
      Old_Add_Part, New_Add_Part, , , vbTextCompare)
を、
      Hyp.Address = Application.Substitute(Hyp.Address, _
      Old_Add_Part, New_Add_Part)
とすればいいようです(Substitute は引数3個らしい)。

「EXCEL VBA質問箱」の過去ログ「置き換えするには?」
http://www.vbalab.net/vbaqa/data/excel/log/tree_695.htm
を参考にしました。

投稿日時 - 2010-01-21 20:48:12

お礼

Ki4-U2様、回答ありがとうございます。
アドバイス通りに記述を変更したところ、無事解決出来ました。
(追記致しますと、元の引用先 http://okwave.jp/qa/q1323629.html のja7awuさんのコードでは、先頭に「Option Compare Text」を記述しないやり方で成功しました。)

ずっと悩んでいた事が解決して感激です。ありがとうございました! 

投稿日時 - 2010-01-22 09:00:28

ANo.1

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

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

回答(1)

あなたにオススメの質問