[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ハイパーリンクのアドレス1000個を一括で変更でき無いでしょうか』(つむつむ)
日頃から拝見させて頂いて降ります。
有難うございます。
先だってファイル名に更新日時の年を追記するについてβ様に教えて頂きました。
お蔭様で無事に希望通りの結果が得られました。
ファイルは1000個有り全て希望通りとなりました。
本当に有難うございました。大変助かりました。
そのファイルには、ハイパーリンクが設定されて降ります。
エクセルの一枚のシートに1000個のハイパーリンクが設定されて降ります。
ファイル名の頭に更新日時の年を追記しましたのでハイパーリンクのアドレスを変更しなくてはなりません。
リンク先は、エクセル・ワード・パワーポイントが対象です。
シート内のハイパーリンクのアドレス1000個を一括で変更でき無いでしょうか
(例)
ハイパーリンクアドレス ファイル名 \\SRVG11\WORK10\青森県\りんご.xlsx りんご
\\SRVG11\WORK10\青森県\2014りんご.xlsx 2014りんご ---- 宜しくお願い致します。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
ここで回答したコードで、ちょっと気になっているところがあります。 たとえば、一度処理してすべてのファイル名が hoge.xlsx から 2016hoge.xlsx になってしまってから もう一度、実行すると 20162016hoge.xlsx 、さらにもう一度実行すると 201620162016hoge.xlsx になってしまいます。
こういったことを避けるための腹案はありますが、ちょっと横において。
つまり、たとえば 1000個のファイルのファイル名を変更した、それぞれのファイルが、1000個のハイパーリンクを持っている。 このハイパーリンクが指し示すブック名にも 年 を付加したいということですか?
もし、そうであれば、前トピではファイル名変更のみだったので、ブックを開かずに 直接、ファイル名を変更したのですが その中のデータを変更するということになると、そのほう式は使えません。 あくまで、開いて、変更して閉じるということが必要になります。
で、その対象なんですが、前トピでは エクセル ワード パワーポイント という指定がありましたが 今回もそうですか?
であれば、βは ワード や パワーポイントの中の ハイパーリンクの設定変更に詳しくないので 上級者さんからの回答をお待ちください。
もう1つ、そのハイパーリンクは(エクセル的な表現をすると)セルに挿入された情報ですか? それとも、HYPERLINK関数ですか?
(β) 2016/07/29(金) 11:39
Sub test() Dim h As Hyperlink Dim cw As String
For Each h In Hyperlinks cw = h.Address cw = Replace(cw, "\青森県\", "\青森県\2014") h.Range(1) = cw h.Range(1).Hyperlinks(1).Address = cw h.TextToDisplay = cw Next End Sub (???) 2016/07/29(金) 11:42
対象は、エクセル ワード パワーポイントです。
割合は、エクセルが800個 ワードが100個 パワーポイントが100個です。
エクセルが出来ると80%が処理できますので非常に助かります。
ハイパーリンクはセルに挿入された情報です。HYPERLINK関数ではございません。
宜しくお願い致します。
???様
ご連絡有難うございます。
教えて頂きましたマクロで結果は出るのですが2014に限ったものでは無く
ファイルの更新した日時の年を付けたいのです。
せっかく教えて頂きましたが
今回の希望とは、違って降りますので申し訳ございませんがこのマクロは使用出来ません。
又、教えて頂きます様お願い致します。
有難うございました。
(つむつむ) 2016/07/29(金) 12:05
更新日付をファイル名先頭に付けることは、前の質問の際に実現できているのですよね? ならば今回はそれは関係なく、1つのシート内のハイパーリンクを変えるだけであり、更新日付なんて関係ないはずではないですか?
現在のファイル一覧は、どうやって作成しましたか? マクロ化しているならば、ファイル名を変更した後で、また一覧表を作り直せば良いだけではないでしょうか。
(???) 2016/07/29(金) 12:51
教えて頂きましたマクロを実行すると全てのファイル名が2014と付いてしまいます。
何かやり方が悪いのでしょうか
cw = Replace(cw, "\青森県\", "\青森県\2014")
\青森県\2014りんご.xlsx
\青森県\2014みかん.xlsx
\青森県\2014柿.xlsx
宜しくお願い致します。
(つむつむ) 2016/07/29(金) 14:51
「りんご」を「2014りんご」に変えたいならば、 Replace(cw, "\りんご", "\2014りんご") とか。
他にいったいどのようなファイルがあるのかこちらでは判りませんから、そこは自由に応用してください。
(???) 2016/07/29(金) 15:26
ファイル名の頭に更新日時の年を追記しましたのでハイパーリンクのアドレスを変更しなくてはなりません。
<やりたい事>
シート内のハイパーリンクのアドレス1000個を一括で変更したいのです。
今回のやりたい事とは違って降りますので申し訳ございませんがこのマクロでは1000個を一括で変更出来ませんので、今回はやはり使用出来ない様です。
又、教えて頂きます様お願い致します。
有難うございました。
(つむつむ) 2016/07/29(金) 16:00
仕方ないので、シート内の情報から現在のファイル名を探して変更する例を書きますね。1から10まで全部私が考えてしまっては意味ないのですが、全く直すつもりはないようですので。
Sub test() Dim h As Hyperlink Dim cw As String Dim vw As Variant
For Each h In Hyperlinks vw = Split(h.Address, "\") vw(UBound(vw)) = "????" & vw(UBound(vw)) cw = Dir(Join(vw, "\")) If cw <> "" Then vw(UBound(vw)) = cw cw = Join(vw, "\") h.Range(1) = cw h.Range(1).Hyperlinks(1).Address = cw h.TextToDisplay = cw End If Next End Sub
セルの文字列もハイパーリンクの文字列も全部フルパスに変えてしまいますので、ここは元の文字列のままで、とかあるのでしたら、そこはご自分で変えてみてください。
(???) 2016/07/29(金) 16:42
すごいですね
希望通りの結果が得られました。
マクロはほぼ初心者で、何も対応が出来ませんでした。
申し訳ございません。
本当に有難うございました。
(つむつむ) 2016/07/29(金) 17:06
なので、年度を頭に付けたばかりの、今回限りのコードと考えてください。既にこのような条件のものがあるかもしれませんが、そこは手修正願います。
(???) 2016/07/29(金) 17:11
ご丁寧な補足 助かります。
有難うございました。
(つむつむ) 2016/07/29(金) 17:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.