[[20160729103457]] 『ハイパーリンクのアドレス1000個を一括で変更でき』(つむつむ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ハイパーリンクのアドレス1000個を一括で変更でき無いでしょうか』(つむつむ)

日頃から拝見させて頂いて降ります。
有難うございます。

先だってファイル名に更新日時の年を追記するについてβ様に教えて頂きました。
お蔭様で無事に希望通りの結果が得られました。
ファイルは1000個有り全て希望通りとなりました。
本当に有難うございました。大変助かりました。

そのファイルには、ハイパーリンクが設定されて降ります。
エクセルの一枚のシートに1000個のハイパーリンクが設定されて降ります。

ファイル名の頭に更新日時の年を追記しましたのでハイパーリンクのアドレスを変更しなくてはなりません。

リンク先は、エクセル・ワード・パワーポイントが対象です。
シート内のハイパーリンクのアドレス1000個を一括で変更でき無いでしょうか

(例)

     ハイパーリンクアドレス              ファイル名	
 \\SRVG11\WORK10\青森県\りんご.xlsx          りんご

 \\SRVG11\WORK10\青森県\2014りんご.xlsx  2014りんご
            ----
宜しくお願い致します。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


[[20160726192649]] 『ファイル名の前に作成年を付けたいのですが』(つむつむ)

 ここで回答したコードで、ちょっと気になっているところがあります。
 たとえば、一度処理してすべてのファイル名が 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


今回のコードは、今後年度が増えていくと通用しなくなります。例えば、「2014りんご」と「2015りんご」が存在するような場合。先に見つけたファイル名に反応してしまうのです。どっちが先に見つかるかは、サーバー次第。

なので、年度を頭に付けたばかりの、今回限りのコードと考えてください。既にこのような条件のものがあるかもしれませんが、そこは手修正願います。
(???) 2016/07/29(金) 17:11


???様
ご連絡有難うございます。

ご丁寧な補足 助かります。

有難うございました。
(つむつむ) 2016/07/29(金) 17:24


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.