[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『アクティブセルを画面中央に表示』(ビギナー)
お世話になります。
(例) セルA1にハイパーリンクででDM1を表示するよう設定します。 このとき、表示されたセルDM1は画面の右端あります。 このアクティブセルを画面中央に表示させることは可能でしょうか (厳密に言いますと左右方向に対してのみ画面中央で上下方向には指定しません) Excel2003を使用しています
もっと良いコードがあるかもしれませんが・・・ 該当シートのオブジェクトモジュールに以下をコピペでいかがでしょうか?
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim r As Range, i As Long
If Target.Range.Address(0, 0) = "A1" Then
With ActiveWindow
Set r = .ActiveCell
For i = 0 To 256
DoEvents
a = r.Left - .Width / 2 + .Left
If r.Offset(, -(i + 1)).Left < r.Left - .Width / 2 + .Left Then
.ScrollColumn = r.Column - i
Exit For
End If
Next i
End With
End If
End Sub
(momo)
momo様
早速の回答ありがとうございます。 コピペして試しましたところ A1からDM1の表示はアクティブセルは中央になりましたが 他のハイパーリンクでは全くだめでした。
ハイパーリンクは他にもたくさんありますが 中央に表示させたいセルは以下の31個になります。 説明不足ですみません
C10・K10・S10・AA10・AI10・AQ10・AY10・BG10・BO10・BW10 CE10・CM10・CV10・DC10・DK10・DS10・EA10・EI10・EQ10・EY10 FG10・FO10・FW10・GE10・GM10・GV10・HC10・HK10・HS10・IA10・II10
ハイパーリンクで移動させたとき上のセルは画面中央に表示するよう 再度、お願いします。
(ビギナー)
1列ごとの幅を得るのが面倒ですね。 ウインドウサイズによっても違いますし。 簡単に下のような感じでも大丈夫ですか?
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
With ActiveWindow
x = Int(ActiveCell.Column - .Width / ActiveCell.Width / 2)
x = IIf(x <= 0, 1, x)
.ScrollColumn = x
End With
End Sub
(momo)
momo様
ありがとうございます。 お見事!! 思い通りの動きができました。 特に列の幅には影響ないようです。
また、機会がありましたら よろしくご指導お願いします。
(ビギナー)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.