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

解決済みの質問

エクセル2013でのリンクの一括置換の方法を教えて

本来は
file://C\Users\Admin\Music\データ
としているハイパーリンクが一シート全体がfile://C\Users\Admin\AppData\roaming\Microsoft\Excel\データ
と変更されてしまいます。

前日には問題なかったものが、翌日PC起動、エクセルデータを確認すると変更されてしまっています。

これを一括でリンクを置換することができるとしたら、その方法を教えてください。

また、、なぜこのような現象が起きるのか原因を教えてください。

よろしくお願いします。

いろいろ検索しましたが該当するURLがみつかりませんでした。

PCのOSは Win7です

投稿日時 - 2015-07-23 14:49:23

QNo.9017380

困ってます

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

いくつか不明点があるので確認させてください。

・ハイパーリンクのアドレスの確認方法
file://C\Users\Admin\Music\データ
file://C\Users\Admin\AppData\roaming\Microsoft\Excel\データ
↑これって、ハイパーリンクにマウスポインタを置いたときに出る小窓に表示されているアドレスじゃないですか?
「ハイパーリンクの編集」ウィンドウのアドレスで表示されているのは、データ\abc.txtなどだけではないでしょうか。

・「データ」はフォルダかファイルか
file://C\Users\Admin\Music\データ ←このデータはフォルダですか?

・Excelファイルの保存場所
問題となっているExcelファイルはどこに保存されていますか?
C:\Users\Admin\Music\ ←この中ですか?
(そうだとして次の不明点)

・ファイルの開き方
問題となっているExcelファイルは、どのように開いていますか?
履歴から開くのではなく、直接C:\Users\Admin\Music\にあるファイルをダブルクリックで開くとハイパーリンクのパスはどうなりますか?

---------------------------------
以上を踏まえて
ファイルを直接C:\Users\Admin\Music\から開いてハイパーリンクのパスが正しいのならば、ファイルの開き方を正せばいいですね。

直接開いてもパスがおかしいのなら、そのファイル自体がおかしいか、ハイパーリンクの設定方法がおかしいか、Excelに不具合がでているか、理由はわかりません。
(テスト的に新規ファイルを作成して確認してみるとか)

最初に
「ハイパーリンクの編集」ウィンドウのアドレスで表示されているのは、データ\abc.txtなどだけではないでしょうか
と聞きましたが、そうならハイパーリンクが相対パスに変換されたのが原因です。
且つ開かれたExcelファイルが
C:\Users\Admin\AppData\roaming\Microsoft\Excel\
から開かれているということになります。
(相対パスだと、Excelファイル単体を他の場所に移動するとリンク切れが起こります)
正しいファイルを開いているのに、なぜ違う場所のファイルが認識されるのかはわかりません。
本来この場所は、自動回復用ファイルの作成場所なのですが・・・

もしこのまま使っていくのであれば、相対パスを絶対パスに変更すればリンク切れは防げます。
Excelそのもののオプション設定を変更するか、ファイル単体で設定するかのどちらかです。

※参考サイト
Excelオプション変更:http://blog.livedoor.jp/yorinaga/archives/51978597.html
ファイル単体で設定:http://excel-ubara.com/excel2/EXCEL315.html
バージョン違いますがわかりますよね。

絶対パスから相対パスに変換されるのは保存時なので、絶対パスに変更する前に設定の変更をしておきましょう。

あとは、naoto0216さんが教えてくれた方法で
置換元は データ
置換するのは C:\Users\Admin\Music\データ
でしょうか。

***【注意】***
正確なファイルの保存場所等が把握しきれていないので、上記でもダメかもしれません。
「多分こんな構成になってるんじゃない?」という私の思い込みがあるので間違えてたらごめんなさい。
要は、元になるのはハイパーリンクの編集で表示されるアドレスです。
Cの後の:を忘れたりしてるので、お気を付けを。
************

実行したら、ハイパーリンクの編集でアドレスが絶対パスになっていることを確認してください。
ハイパーリンクが正しくなったのならファイル保存をして、再度ハイパーリンクの編集を開き、絶対パスのままなら大丈夫です。

マルチメディアファイルは削除されたか見つかりません。

投稿日時 - 2015-07-25 15:48:19

お礼

> Green_Treeさん、ありがとうございます

> これって、ハイパーリンクにマウスポインタを置いたときに出る小窓に・・・
おっしゃるとおりです

> このデータはフォルダですか?
いいえ、ファイルです

> C:\Users\Admin\Music\ ←この中ですか?
はい、Musicフォルダのなかに保存してます


> Excelファイルは、どのように開いていますか?
スタートボタンのExcelのアイコンにマウスを乗せるとメニューの横に「最近使ったもの」にファイル名が表示されますよね、そこから開いていました。
Musicフォルダから直接開く・・・
Green_Treeさんの回答で改めて直接ひらいてみたら、、、、、
ナ・・・ナント!リンクが元に戻ってます!!
これで当初考えていた、「リンクの一括置換」をしなくてすみますね。

この数日間、いろいろ試行錯誤してきましたが「ファイルから直接開く」という初歩的なことで解決するなんて!
目からうろこです。

今回のこのトラブルをいい教訓に、これから絶対パスにてファイルを作成しようと思います。

naoto0216さん
Green_Treeさん
お二人ともご親切にありがとうございました。

先に回答いただいたnaoto0216には申し訳ありませんが、今回は直接解決に至ったGreen_Treeさんの回答をベストアンサーとさせていただきます  (*_ _)人ゴメンナサイ

感謝します(*- -)(*_ _)ペコリ

投稿日時 - 2015-07-26 17:42:31

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

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

回答(4)

ANo.3

<補足>
Replaceの箇所についてですが、
Replace(i.Address, "現在のパス", "変更したいパス", , , vbTextCompare)
です。
要するに、"現在のパス"を"変更したいパス"に置換しています。
なので、現在のパスが間違っていると、置換できません。
例えば、ハイパーリンクでhttp://www.aaa.co.jp があったとして、それを
http://www.bbb.co.jpに変更したい場合、
Replace(i.Address, "aaa", "bbb", , , vbTextCompare)
とすれば、http://www.bbb.co.jp に変更されます(aaaの部分をbbbで置換)。

今回の場合は、
file://C\Users\Admin\AppData\roaming\Microsoft\Excel\ の部分を
file://C\Users\Admin\Music\に置換する・・・ってことになります。
※よくよく見るとAdminまでは同じなので、\AppData\roaming\Microsoft\Excel\ を\Music\ に
 置換した方がよいかもしれません。

投稿日時 - 2015-07-23 19:36:49

お礼

> naoto0216さん
何度も回答いただきありがとうございます。
2度目にいただいた回答にしたがって再度やってみましたが、現在のところリンクが書き換えられた形跡はみられませんでした。
(書き換えたいリンクについては一語一句間違いがないか、何度も確認したので間違いはないはずなのですが^^)

補足いただいた内容について、再度時間をかけて挑戦してみます。
とりあえず、感謝申し上げます。
お手数おかけして申し訳ありません。

投稿日時 - 2015-07-24 20:18:06

ANo.2

F5を押してもメッセージが出たりはしません。

ハイパーリンクが
 file://C\Users\Admin\Music\データ
に変更されてませんでしょうか。

投稿日時 - 2015-07-23 19:15:08

ANo.1

そのシートを開いた状態で、Alt+F11を押します。
VBEの画面が開くので、挿入⇒標準モジュールを選択します。
そこに、
Sub Macro1()
Dim i As Hyperlink
For Each i In Sheet1.Hyperlinks
i.Address = Replace(i.Address, "file://C\Users\Admin\AppData\roaming\Microsoft\Excel\", "file://C\Users\Admin\Music\", , , vbTextCompare)
Next i
End Sub
を貼り付けて、最後に実行(F5)してみて下さい。

投稿日時 - 2015-07-23 16:31:00

お礼

早速の回答ありがとうございます。
回答いただいた通り実行しましたが、なんら変化がないように思われます。
F5にて実行した後になにかすべきことがあるのでしょうか?
エクセル初心者で十分理解できないでいます。
再度ご回答いただけたらありがたいです。

なお、この時点でベストアンサーにするを押してしまうと回答受付が終了してしまうようで、不安で押せないでします。
タイミングをみてベストアンサーとさせていただこうと思います。
ごめんなさい。

投稿日時 - 2015-07-23 17:20:58

あなたにオススメの質問