[[20240325222506]] 『ハイパーリンク関数の移動先を1番上に』(ごんべ) ページの最後に飛ぶ

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

 

『ハイパーリンク関数の移動先を1番上に』(ごんべ)

お世話になります。ハイパーリンク関数でシート内のセルへ移動する際、そのセルが画面の左上になるようにしたいです。ハイパーリンクの挿入だとvbaのfollowhyperlinkで出来ましたが、ハイパーリンク関数は対応していないようです。ハイパーリンク関数の移動先セルを広く範囲指定すれば、範囲の左上が画面左上になるようにスクロールします。一応希望の動作になるのですか、可能であれば広く範囲指定するのではなく、1つのセルだけを指定してその結果にしたいです。よい方法があれば教えていただけないでしょうか。宜しくお願い致します。

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


 ・関数によらないハイパーリンクに作り替えるか(標準対応)、
 ・ハイパーリンクのあるセルの右をダブルクリックしたとき、
   ハイパーリンクセルのFormulaからジャンプ先を読み取って
   Application.Gotoを利用
 などの方法があるように思います(他にも色々あるでしょう。)

 いっそ別方式でこんなのはどうですか。
 ・セルには  ■A10 などとジャンプ先を書いておき、
 ・そのセルをダブルクリックして、イベントプロシージャにジャンプ命令を実行させる

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     Dim adrs As String
     If Left(Target, 1) = "■" Then
         Cancel = True
         adrs = Mid(Target, 2)
         Application.Goto Range(adrs), True ' 第二引数をTrueにするとそのセルが左上になります。
     End If
 End Sub
 # 他シートであれば、■Sheet2!A10のような形式で、2桁目以降をとって、!でSplitすれば、2要素に分解できます。
(xyz) 2024/03/26(火) 07:40:21


>ハイパーリンク関数は対応していないようです。
同じブック内の同一シート、別のシートにセルリンクするには
セル名、シート名の先頭に# を付加します。
=HYPERLINK("#A3") とするとシート内のセル移動となります。
Sheet1 の A1 に =HYPERLINK("#Sheet2!A3","Sheet2 A3へ移動") として
クリックすると Sheet2 の A3 に移動します。

(IT) 2024/03/26(火) 12:16:10


 ITさん、質問をよく読んでは?

 HYPERLINK関数が対応していないのは
 >シート内のセルへ移動する際、そのセルが画面の左上になるようにしたいです。
 について。
(ねむねむ) 2024/03/26(火) 12:20:31

 質問のポイントは、「そのセルが画面の左上になるようにしたい」の実現、と言う点です。

 「ハイパーリンク関数は対応していない」の意味は、
 「HYPERLINK関数ではない通常のハイパーリンク」では起動する
 FollowHyperlinkイベントプロシージャが、 HYPERLINK関数では起動しない、
 つまりイベントとして捉えられない、対象外である、
 という意味です。
 もし、FollowHyperlinkイベントプロシージャが起動するのであれば、
 そのなかで、Application.Goto xx, True が使えるので簡単に問題解決ということです。

 ついでに言えば、
 (1) 
 Jump先が固定されているのであれば、Jump先のSelectionChangeイベントプロシージャで
 Application.Goto xx, Trueが使えるでしょう。そういう手もあり得ます。
 (ただ、普通にセルを選択した場合も効いてしまいますけど)
 なお、再入による無限連鎖に気を付ける必要があります。 

 (2)
 なお、2024/03/26(火) 07:40:21の案も、上記案も個人使用であればOKですが、
 他のユーザーも使うということになると、NGでしょう。
 そういう標準ではないインターフェイスは、ユーザーに分かりにくいので
 それだけで障害になってしまいますから止めておくべきです。
 標準的なハイパーリンク + FollowHyperlinkということになるでしょう。

(xyz) 2024/03/26(火) 12:41:53


指摘ありがとうございます。
言われてみればその通りですね。
質問者さんスルーしてください。
(IT) 2024/03/26(火) 14:17:17

皆さん、ありがとうございます。

ネットで色々と探してみたのですが、よい解決策はみつかりませんでした。
もしよい方法をご存じの方は引き続き宜しくお願い致します。
同じ方法を探している方がここにたどり着くこともあるかもしれませんね。
(ごんべ) 2024/03/27(水) 12:06:25


 全部却下なんですか?
 既定の機能では、ハイパーリンク + FollowHyperlinkです。
 HyperLink関数単独では、実現できません。
 お望みなのは、HyperLink関数をそういう機能を持ったHyperLink関数に
 変更するということなんですか?無理でしょう、それは。

 なんらかの追加の処理(イベント処理で画面左上隅にActiveCellが動くような処理)が必要です。
 既に書いたように、個人使用なのか多数ユーザに使用してもらうものかによっても変わりますけどね。

(xyz) 2024/03/27(水) 12:40:08


xyzさん、何度もアイデアと書き込みをありがとうございます。私の理解不足ですみません。それ以上はエクセルの機能として無理ということですね。状況に応じて教えていただいたものを使い分けるようにします。
(ごんべ) 2024/03/27(水) 18:58:02

コメント返信:

[ 一覧(最新更新順) ]


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