エクセルでハイパーリンクを置換する方法

このQ&Aのポイント
  • エクセルでハイパーリンクを置換する際に、ファイル名が小文字になってしまう問題について解決方法を教えてください。
  • エクセルのreplace関数を使用してハイパーリンクを置換しようとしていますが、結果としてファイル名が小文字になってしまいます。大文字、小文字を区別する方法を教えてください。
  • エクセルのreplace関数を使用してハイパーリンクを置換する際、ファイル名が小文字になる問題が発生しています。大文字、小文字を区別する方法を教えてください。
回答を見る
  • ベストアンサー

エクセルでハイパーリンクを置換すると

どなたか知っていたら教えて下さい。 エクセルに埋め込んだハイパーリンクをreplace 関数を 使って置換しようとしているのですが… 「\\server\share\ABC.pdf」を 「ftp://server/share/ABC.pdf」に置換しようと思い Replace(C.Address, "\\server", "ftp://server", , , 0) というマクロを作成したのですが、結果は 「ftp://server/share/abc.pdf」 と、何故かファイル名が小文字になってしまいます。 大文字、小文字を区別したいので何とかなりませんでしょうか。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ハイパーリンクのAddressプロパティに設定する段階で "ftp://server\share\ABC.pdf" になっていますが、この時、"\" を"/" に自動的に置き換える時に、 どうも小文字になってしまうようです。(これは望まれない動作ですね、バグと言っても良いような気がします。) 前もって linkAddress = Range("A1").Hyperlinks(1).Address linkAddress = Replace(linkAddress, "\\server", "ftp://server") linkAddress = Replace(linkAddress, "\", "/") Range("A1").Hyperlinks(1).Address = linkAddress のように"\" を"/"に置き換えてやるようにすればそうした置換は起こらないようです。

yoichi0726
質問者

お礼

回答をそのまま試してみたら無事に成功しました。 区切り文字を自動的に置換すると起きるんですね。 ありがとうございました。

関連するQ&A

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

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

  • VBA シート内ハイパーリンク置換がうまくいかない

    お世話になります。 今、エクセルシートのセルにあるハイパーリンクの置換をVBAで行おうとしています。 ファイルサーバの移設に伴い、ファイルサーバ内に保存されているエクセルファイル内のハイパーリンクの一部置換を実施すべく、下記のとおり作ってみましたがうまく置換してくれません。。 置換したいエクセルファイルはlist_TM.txtにフルパスでリスト化しており、ファイルを開く→ハイパーリンクがあれば置換→上書き保存して閉じる の繰り返しを実行しています。 下記を実行したあと、実際にファイルを開いて置換された結果を確認すると、\\server1\tantou\Datasave\sample.xls → C:\Datasave\sample.xlsとなってしまっており、当方が所望する\\server2\kyoyu\tantou\Share\Datasave\sample.xlsになっていませんでした。原因がよくわからず質問させて頂いた次第です。 なお途中でTargetRowとTargetColumnを挟んでいますが、この2行はハイパーリンクがある行と列をちゃんと拾ってくれているかどうか確認するために入れたので、無視してい頂いていいかと思います。 お力添えの程、宜しくお願い致します。 Sub Link_OKIKAE() Dim i As Long Dim buf As String Dim AWBN As String Dim HL As Hyperlink Open "C:\temp\test\list_TM.txt" For Input As #1 Do Until EOF(1) Line Input #1, buf Workbooks.Open buf AWBN = ActiveWorkbook.Name For i = 1 To Worksheets.Count Sheets(i).Activate For Each HL In ActiveSheet.Hyperlinks TargetRow = HL.Range.Row TargetColumn = HL.Range.Column HL.Address = Replace(HL.Address, "\\server1\tantou", "\\server2\kyoyu\tantou\Share") Next HL Next i Workbooks(AWBN).Save Workbooks(AWBN).Close Loop Close #1 End Sub

  • Excelでハイパーリンクの一括置換(指定範囲)

    現在、Excel2002を使用しておりますが、ハイパーリンクの一括置換用マクロ作成でつまづいておりますので、詳しい方お願いします。 【Excelデータ】   A B C D …… 1 ★ ★ ★ ★ …… 2 ★ ★ ★ ★ …… 3 ★ ★ ★ ★ …… : : : : : ★マークの箇所のデータにURLの途中まで同じハイパーリンクが貼られています。 リンクはhttp://aaa.bbb.ccc/ddd/eee/… ここで、C列の1行目から最終行(約1万行)までのハイパーリンクのみ ddd→FFFとしてhttp://aaa.bbb.ccc/FFF/eee/… としたかったので、こちらのサイト検索をしてみると Sub ハイパーリンクの置きかえ()  Dim H As Hyperlink  For Each H In Range("B2:B101").Hyperlinks   H.Address = Replace(H.Address, "\\abc", "\\def")  Next End Sub という回答を見つけることが出来ました。 そこで、それを参考にして Sub macro1()  Dim H As Hyperlink  For Each H In Range("C1:C50000").Hyperlinks   H.Address = Replace(H.Address, "ddd", "FFF")  Next End Sub ※C列は約1万行なので5万行まで指定すればよいかと思い、この値にしてます。 とマクロを作成したのですが、 いざ実行してみると、C列だけではなく、他の列まで全部一括置換してしまいます。 私はC列だけを置換したいので、何か良い方法をご存知の方はお願い致します。 C列だけ他のシートにコピーして一括置換して元の場所に貼り付ける方法も考えたのですが、その方法ですと、D列を別の文字列に一括置換とかE列を更に別の文字列に置換… とした場合の応用がききませんので…

  • 置換のVBA

    エクセルのあるシート内の「abc」という文字列を「abc20」に置換するには以下で可能ですが、 Sub chikan() Cells.Replace What:="abc", Replacement:="abc" & "20", _ LookAt:=xlPart,SearchOrder:=xlByRows, MatchCase:=False End Sub 「abc」という文字列を連番で「abc20」「abc21」「abc22」・・・・・というふうに置換するにはどうすればいいでしょうか?

  • エクセル2003で特殊文字の置換方法

    エクセル2003、XPを使用しています。 エクセルのマクロで置換をしているのですが、 置換対象がCHAR(160)です。 セル上に上のを打ち込むと、実際は違いますが半角スペースに見えます。 特殊文字であっているのでしょうか。 それで、この文字を消したいと思い、以下の通りマクロで記述しているのですが、成功しません おわかりになる方いらしたらよろしくお願いします。 Cells.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart, SearchOrder:= _ xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

  • エクセルのハイパーリンクが飛ばない

    エクセルのセルに文字を入力し、その文字をクリックすると YOUTUBEのある動画に飛ぶようにしようと思い ハイパーリンクの設定を行いましたが 同じ方法でいくつかのセルに設定し、ちゃんとリンクが飛ぶものも ありますが、殆どがその文字をクリックするとブラウザーが 立ち上がって 「お使いのブラウザーは最新です」という訳の 分からないメッセージが出てきます。 ハイパーリンクのURL間違いかな? と思い そのセルで右クリックして、ハイパーリンクの設定を押して 下側のアドレスという項目を確認すると URL自体は間違えてないです。 確かめる為に、そのURLをコピーしてブラウザーのアドレスの所に コピペしたらちゃんと動画は再生されました。(URL間違いではない) それでは何がおかしいのでしょうか? お詳しい方教えてください よろしくお願いします。

  • エクセル・ハイパーリンクの関数処理

    エクセル・ハイパーリンクの関数処理 Excel 2007を使っています。 セルC列にハイパーリンクを含むデータが並んでいます。 このURLをD列に取り出したいのですが、 関数処理で出来ますか。出来るのでしたら教えてください。 出来ない場合は、マクロでも結構です。お願いします。

  • 置換について

    エクセルで、重要な語句に対して部分的に色付けされた文章が記載されたセルがあるとします。 そのセル内の文字列を、ctrl+FやReplace関数を使って置換をかけた場合、色付けした文字列がすべて黒に変わってしまいます。 置換対象文字列以外は、置換前の状態のまましたいのですが、どなたかその方法についてご存知の方いらっしゃらないでしょうか? ぜひ、ご教授願います。

  • EXCELでセル毎にハイパーリンク先を置換する方法

    EXCELでセル毎にハイパーリンク先を置換する方法を探しています。 例 セル  文字      希望ハイパーリンク先 A1には「aiueo」     http://192.168.1.1/aiueo.html A2には「kakikukeko」 http://192.168.1.1/kakikukeko.html A3には「sashisuseso」 http://192.168.1.1/sashisuseso.html なるべく処理が重くならない方法で可能な方法をご教示下さい。

  • エクセルの複数同時置換

    エクセルで文字列を同時に複数置換することって出来ますか? たとえば、ABCという文字列があった場合、 A→1 C→2 の置換を同時にやりたいんです。 ABC→1B2 に一度に置換する方法はありますか? よろしくお願いします。

専門家に質問してみよう