[[20130913024936]] 『リンク先の変更』(デスク) ページの最後に飛ぶ

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

 

『リンク先の変更』(デスク)2007のビスタ
お世話になります。

”A”というファイルに、”あ”というフォルダ内の一覧を作って、ハイパーリンクの挿入で、ひとつひとつエクセルファイルにハイパーリンクさせています。
(”あ”フォルダの中には、”ア”フォルダや”イ”フォルダがあります)
”あ”というフォルダを丸ごと全部 他のフォルダに動かしても、”A”のファイルから、ハイパーリンクが可能な方法は あるでしょうか?

宜しくお願いします。


 ハイパーリンクが相対でなく絶対パスだと、設定し直すくらいしか思いつきません。
 マクロでこんな感じでしょうか。
 (Mook)

 Sub リンクパス変更()
    Const 旧パス = "D:\Data\あ\"
    Const 新パス = "D:\Data\い\"

    Dim リンク As Hyperlink
    For Each リンク In ActiveSheet.Hyperlinks
        If InStr(リンク.Address, 旧パス) > 0 Then
            リンク.Address = Replace(リンク.Address, 旧パス, 新パス)
        End If
    Next
 End Sub


 書き込むことが合っているか自信がないのですが…

 例えば「あ」フォルダが「1」フォルダに入ってるとします。
 Aというファイルにハイパーリンクするとなると、その階層は〜\1\あ\ア\〜となるはずです。
 (1フォルダにあフォルダがあり、あフォルダにはア・イ等のフォルダがある)
 それが、「あ」フォルダの居場所が「2」フォルダに動いちゃったとします。
 そうすると階層が〜\2\あ\ア\〜と、「あ」フォルダの手前が変わっちゃいます。

 ハイパーリンクはもう階層を決まってやるわけですから
 変えてしまうとリンクを設定しなおすしかない気がします。

 (三角) Mookさんのマクロで新しく設定しなおすことがお勧めです。

 逆に面倒かもしれんが。

 セルにパスを入れておいてHYPERLINK関数を使ってはどうか?
 フォルダを変更した場合には置換でセルに入力してあるパスを一括変更できる。

 あるいはA1セルに変更されるパス名を入力しておいて個々のセルにはそれ以降のパス名を入れてHYPERLINK関数では
 そのパス名を組み合わせるようにしておけばA1セルを変更するだけで済む。
 (ねむねむ)

皆様、ありがとうございます。
さっそく、研究してみます。(デスク)

コメント返信:

[ 一覧(最新更新順) ]


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