• ベストアンサー

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

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

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

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.5

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

take-r2d2
質問者

お礼

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

その他の回答 (4)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.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) )

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.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 こんなんでどうかな? バックアップ取ってからテストしてみて。

take-r2d2
質問者

お礼

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

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

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

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

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

関連するQ&A

  • ExcelのワークシートをPDF変換するとハイパーリンク情報が消えてしまいます

    Excel2003でセルにURLを直接入力してツールバーのPDF MakerでPDFに変換した場合は問題なくハイパーリンクが作成できるのですが、 =HYPERLINK("http://oshiete.watch.impress.co.jp/","教えて") の様にHYPERLINK関数を使用するとPDF上では青字にアンダーライン表示になるものの、ハイパーリンクができません。 どうしたらExcelで関数を使用しつつ、PDF上でハイパーリンクを実現できるのでしょうか? ご存知の方、いらっしゃいませんか? ちなみに関数を使用していなくてもExcel2003上のURLを登録したセルで右クリック→「ハイパーリンクの編集」→「表示文字列」でURLを"教えて"に変更した場合でも同様にPDF上でハイパーリンクできませんでした。 環境は下記の通りです。 Windows XP SP3 Excel2003 SP3 Adobe Acrobat 8 standard

  • 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セル以下全部コピーする事って可能でしょうか?)

  • エクセル2003でハイパーリンクのセルからURLアドレスを取得する関数はありますか?

    エクセル2003でハイパーリンクのセルからURLアドレスを取得する関数はありますか? ハイパーリンクを作成する関数は、=HYPERLINK("URLアドレス", "表示名称")で可能ですが、この逆で、"URLアドレス"を取得する関数を探しています。 例えばこのセルが、A1にあったとして、B1に =A1とすると、B1には「表示名名称」が表示されます。 C1に「URLアドレス」を表示させるVBAでなく関数が知りたいです。 無ければ、VBAでも構いません。 よろしくお願いいたします。

  • ハイパーリンクのURL置換(Excel2003)

    仕事で使っている資料(PDFです)のタイトル一覧を入力し、セルを右クリック、ハイパーリンクの新規登録のメニューで資料PDFへのリンクを作成しました。 諸事情によりPDFのおき場所(PDFを格納しているフォルダ)が変更となったため、一括でパス中のフォルダ部分だけを置換したいと考えています。PDFのファイル名自体は変更ありません。 現在相対パス(エクセルから見た位置でファイルの場所を指定)なので、併せて絶対パスに変更したいと思っています。 URLの置換は可能なのでしょうか?? 関数を使ってハイパーリンクを作っている場合には置換のメニューから「値」を選択し(?)変更が可能、といったような記事も見かけました。 エクセル初心者です。詳しい方、どうかご教示よろしくお願いします >_<)

  • Outlook Express 6 のリンク挿入

    社内ネットワーク上にあるフォルダ・Excel・PDFをリンクさせたいのですが、 ハイパーリンクの挿入>種類「file://」でフォルダ、データアドレスをコピーして貼り付けてもリンク先に飛ぶことができません。 ハイパーリンクの挿入設定時には下記のように入力してOKを押しています。 file://\\サーバー名\フォルダ名(5~6階層くらいあります)\ファイル名(Excel、PDF) リンクできないと社内共有がスムーズにできなくて困っています。 OSはWindowsXP SP3(社内全員同じです)です。 解決する方法はあるでしょうか?

  • Excel、ハイパーリンクが開けない。

    Excel2007でハイパーリンクが開けません。 はじめに挿入からハイパーリンクの設定をしました。数は、50近くあります。リンク先のデータをフォルダごと移動しなければならなくなったため、全部のハイパーリンクを削除して(形式を選択して貼り付けの乗算のやり方)関数のハイパーリンクで設定し直しました。※こちらの方が、次回フォルダを移動させなければいけなくなったときに置換でいっぱつでできると思ったので・・・。 ところが、数式は間違っていないのにところどころハイパーリンクが開けないセルができてしまいました。正常なセルの数式を貼りつけて見てもエラーがでてしまうので数式に間違いはないはずです。 また、開けないセルを右クリックでハイパーリンクの削除をするとなぜか隣合わせのいくつかのセルがまとめて黒字の左詰めになってしまいます。※ハイパーリンクは開けるようになります。 Excelのベースを作成したのが別の人なのでなんらかの設定が残ったままでハイパーリンクに支障がでてるとしか思いつかないのですが、ご助言お願いします。

  • Excelのhperlink関数で作ったモノをハイパーリンクに置き換えたい

    Excel2007を利用しています。 A1にSONY ハイパーリンクの挿入で文字列SONY、アドレスhttp://www.sony.co.jp B1に=hyperlink("http://www.sony.co.jp","sony") と入っているとします。B1の形式を全てA1の形式に変換したいと思っていますがどのようにやればよいかわかりません。 Hyperlink関数を使った方がいろんな面で便利とは知っているのですが、B1のhyperlink関数からA1のハイパーリンク挿入への変換を教えていただきたく思います。B列には数百社のhyperlink関数で定義された企業名があるのですが、それをAの形式に手動でなおすには時間が恐ろしくかかってしまいます。よろしくお願いいたします。

  • ハイパーリンクのリンク先がおかしい。

    Excel Office 365を利用しています。 ハイパーリンクのリンク先がおかしくなります。 例えば、AmazonのASINから商品ページへのハイパーリンクを作ります。 B1セルに http://www.amazon.co.jp/exec/obidos/ASIN/を記入。 A2セルから下にASINを入れていき、B2セルにB1セルとA2セルを合体させ(=$B$1&A2)表示。 C2セルにハイパーリンクでリンクを作ります。(=HYPERLINK(B2,$C$1))としました。(C1セルにはAmazonリンクと記入)   そうするとC2セルにリンクができて、クリックするとAmazonの商品ページに飛びます。   その下のセルの計算式は、B2セル、C2セルを選択し右下の+マークを下にコペーしていきました。 しかし、C3セルから下のリンクを開くとどれもC2のリンク先になっています。 B3セルにはA3セルのASINでURLができていて、C3セルもちゃんとB3がリンク先になっています。   なぜ記述が合っているのにリンク先が違うのか、どうしたらちゃんとリンクされるのかがわかりません。 詳しい方、ご教示いただけるとありがたいです。 よろしくお願いします。

  • EXCEL2010のハイパーリンク先の一括変更

    EXCEL2010のハイパーリンク先の一括変更をしたいのですが、 \\TS-XHL6E6\ だけを削除して、このお尻の部分のリンクを生かしたいのですが、エクセル上で検索して、一括変更するには、どうすればよいのでしょうか?

  • ワードでURLにハイパーリンクできません

    ワード文書に直接書いたURLやWebサイト表示中にアドレス欄からコピーしたURL・・・URLは青色反転していて下線も付いています。しかしこれらをクリック(手のひらマーク)しても「~を開くことができません。インターネットサーバー又はプロキシサーバーが見つかりませんでした」というメッセージが出るだけでIEが起ちあがりません。どうしたらハイパーリンクが働くでしょうか? XP、ワード2000-SP3、IE6を使用。エクセル上では問題なく、またワードでもメールアドレスはちゃんとOEが起ちあがります。ワードの「ツール」「オートコレクト」内では「インターネットとネットワークのアドレスをハイパーリンクに変更する」にチェックを付けています。「挿入」から「ハイパーリンク」、「リンクの編集」なども試しましたが・・・ よろしくお願いします。

専門家に質問してみよう