[[20211210133412]] 『シートコピー時のハイパーリンクの参照先』(初心者マーク) ページの最後に飛ぶ

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

 

『シートコピー時のハイパーリンクの参照先』(初心者マーク)

VBAのコードについての質問です。

ハイパーリンクを設定しているセル(A1)が存在するシートを、新規作成したブック(Bブック)にコピーした際に、BブックのA1セルのハイパーリンク参照先がコピー元と違う箇所(新規作成後の左端のシートのA1になる?)になってしまいます。
これを回避したく、コピー先でも同じ参照先にする方法はありますか。
※シートコピー後、ハイパーリンクの参照先を設定しなおす等のやり方ではなく、あくまでコピー先の参照先が変わらないようにする方法があれば知りたいです。

なお、コピー元のハイパーリンクの参照先は同シート内の別セル(例としてA50)です。
シートのコピーは、下記のコードで実装しています。
Call コピー元BK.Sheets("シート1").Copy(before:=コピー先BK.Sheets(1)

以上、ご回答お待ちしております。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


 ハイパーリンクの設定もVBAでしていますか?
 推測ですけどハイパーリンクを絶対参照にしたら解決したりしませんか?
https://kokodane.com/2013_waza_083.htm
(.:*.ゆ ゅ) 2021/12/10(金) 14:17

自分自身のシート内のリンクであれば、
シート指定をとってしまう方法がありますね。
    Set r = [A1]  '例です。
    s = r.Hyperlinks(1).SubAddress
    s = Replace(s, ActiveSheet.Name & "!", "")
    r.Hyperlinks(1).SubAddress = s
のような感じではどうですか?
(γ) 2021/12/10(金) 14:26

追記:コピー元のハイパーリンクを修正するという意味です。
(γ) 2021/12/10(金) 14:29

(.:*.ゆ ゅ)さん
>ハイパーリンクの設定もVBAでしていますか?
コピー元のハイパーリンク設定は手動で直接セルに設定しました。
>推測ですけどハイパーリンクを絶対参照にしたら解決したりしませんか?
参考サイトを拝見し試したみましたが、参照先が"このドキュメント内"の場合には、想定通りに動かないのでは?と感じました。
ハイパーリンクの参照先が別ブックである場合に、リンクが切れない対処方法だと認識しました。
しかしながら、貴重なご意見ありがとうございます。

(γ)さん
>シート指定をとってしまう方法がありますね。
頂いた方法を試した結果、想定通りの動作となりました。
リンクに"シート名"が指定されているとは気づきませんでした。ありがとうございます。

・コピー先のシート名が同じ名前であれば、この対応は要らなくなるということなのか
・コピー先のセル押下時に「参照が正しくありません」とエラーが出たが、
ハイパーリンク編集で確認した際に"A1"とあり、遷移くらいはするのでは?と、
思ってたが本当はA1を指していなかったのでは。(Hyperlinks(1).SubAddressの値)
など、気になる点が出てきましたので、今後研究をしてきたいと思います。

解決に導いてくださり、ありがとうございました。
また、宜しくお願いします。

(初心者マーク) 2021/12/10(金) 15:16


コメント返信:

[ 一覧(最新更新順) ]


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