[[20151120222649]] 『ハイパーリンクの編集』(ワンダ) ページの最後に飛ぶ

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

 

『ハイパーリンクの編集』(ワンダ)

最近フォルダごと別のフォルダに移動したところ
ファイルに設定してあるリンクをクリックしても「指定されたファイルを開くことができません」になります。

そこでハイパーリンクの編集をクリックして設定しなおそうと思って
ひとつ上のフォルダーをクリックしても(検索先)デスクトップ になってしまいます。
デスクトップじゃないのに...。

最近使ったファイルはあまりにも多すぎて探すのに苦労します。

なぜひとつ上のフォルダーがデスクトップになるのでしょうか?

こんな時(フォルダごと別のフォルダに移動)、ハイパーリンクの編集の手順を
教えてください。

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


ハイパーリンクの基点というのを使うと良いのだと思いますが、
念のため確認します。

 (q1)Excelブックとリンク先ファイルは同じフォルダにあったものですか?
 (q2)リンク先ファイルは、動かしているのですか、それとも動かしていないのですか?

 (q3)複数のリンク先ファイルがあったとき、
     それらは、色々なフォルダにまたがっていますか?
     それとも一つのフォルダですか?
(γ) 2015/11/21(土) 10:16

 γさん
 ありがとうございます。
 (a1)違うフォルダです。
 (a2)リンク先ファイルは、動かしていないです。
 (a3)色々なフォルダにまたがっています。
 よろしくお願いします。

(ワンダ) 2015/11/22(日) 18:48


 リンク先ブックは動かしておらず、ハイパーリンクがセットされているブックを別の場所に移動させたんですよね?
 その場合、問題なく、ハイパーリンクでとんでいくはずですが??

(β) 2015/11/22(日) 21:12


 ハイパーリンク先はどうやら相対参照で持っているようです。
 では、基点(起点?)はどこなのか。
 ・ブックのプロパティ(「ハイパーリンクの基点」)で指定されていればそれに従う。
 ・指定がなければ、自分自身の保存先フォルダ。
 ということのようです。

 それで、自分自身を別の場所に移動させたとき、
 (1)ドライブを跨っていない時
    移動前後でフォルダ階層の深さが同じであれば同一のものを指すが、
    深さが異なると参照先ファイルが異なることになる)

 (2)ドライブを跨って移動してしまうと(例:D:から C:\へ)
    相対参照だけでは再現不能になってしまう、
 ということなんでしょうか。
 (デスクトップがからんでいるようなので、(2)のケースなんでしょう)

 では、リンクが壊れている現状でどうするのか。
 (1)正攻法は、
 ・ハイパーリンク情報(Hyperlinks(1).Addressで取得可能)   
 ・もともとあった場所(ドライブ名とフォルダ名)
 ・現在の場所(同上)
 などの情報から、ハイパーリンク情報を書き換えることになるでしょう。

 (2)姑息な手段ですが、
    ファイルの「ハイパーリンクの基点」を、
    そのファイルが元あったフォルダのパスを指定するといった方法もあるかもしれません。

 いずれにしても、質問者さんから、
 いくつかモデル例を提示してもらうのが
 よいのではないかと思います。 (回答者の独り相撲は避けたいので)

 ・元あった場所のパス名
 ・ハイパーリンク先情報
 ・異動後のパス
 ですね。

  * 23:22 一部修正  
(γ) 2015/11/22(日) 23:09

 To γさん

 勉強になりました。
 私の、おばかなレスは、同じドライブで、かつ同じ階層レベルの別フォルダに移した際の状態をベースにしていました。

 TO ワンダ さん

 失礼しました。

(β) 2015/11/23(月) 01:07


 いえいえ何をおっしゃる。私も今回、色々とためしてみています。

 昨日の記述は少し間違っていました。(いずれも、食い違いが起きる前の話ですが。)
 訂正及び補足です。

 (1)必ずしも常に相対参照で持っているわけでもないらしい。
    絶対参照にしていても相対参照に更新されるのは保存時のようです。
    それを抑止するには、
    オプションの「Webオプション」にある「保存するときにリンクを更新する」の
    チェックをオフにしておくと良いとのこと。 
    ただし、これはアプリケーション単位であって、ブック単位の設定では無い。

 (2)ハイパーリンク先を絶対参照のままにするには、
   「ハイパーリンクの基点」に"\"を入れると良い。
   (MS社が公式に表明している)

 私の遠い記憶(だからテキトーです)によると、
 昔は、リンクを相対にするか絶対にするかの指定ができた気がする。
 その後、色々と変遷してきているのではないか。

(γ) 2015/11/23(月) 07:33


モデルケースの提示を待っていましたが、(私のほうの)時間が切れそうなので、
とりあえずの対応策をお知らせしておきます。

(1)てっとり早いのは、「ハイパーリンクの基点」を元のフォルダに設定することです。

  もしマクロで実行するとすれば、こんなことになるでしょうか。
  Sub setHyperlinkBase()
      ActiveWorkbook.BuiltinDocumentProperties("Hyperlink Base") = "D:\MyDocuments\201511\"
      ActiveWorkbook.Save
  End Sub
  最後の"\"を省かないようにしてください。
  これを何かのキーに登録して、手作業でやってもよいし、多数あるなら、
  フォルダ内のすべてのExcelブックに対して処理をするようにしてもよいでしょう。

(2)ハイパーリンクそのものを変更するには、

   元のフォルダパス & 現在のハイパーリンク情報 と文字列連結して、
   FSOかなにかで、パス名を取得して、
   それをハイパーリンクの Addressプロパティに再設定すればよいと思います。

私は日中はアクセスしませんが、
別の方からコメントをいただけるでしょう。

(γ) 2015/11/23(月) 21:46


コメント返信:

[ 一覧(最新更新順) ]


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