アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

過去の質問で似たような回答がありましたが(http://oshiete.goo.ne.jp/qa/1323629.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セル以下全部コピーする事って可能でしょうか?)

A 回答 (1件)

手元の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_ …
を参考にしました。
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2010/01/22 09:00

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