プロが教えるわが家の防犯対策術!

PCでEXCELを使用しているとき、EXCELのwindowの画面中央部の列名(あるいは画面右端の列名、あるいは画面表示枠を縦横で固定して表示をスクロールさせて表示させている場合の、スクロールする方の左上隅にあたっているセルの行番号や列番号)を取得する方法があるのならば知りたいです。
できれば、EXCEL関数で取得したいですが、VBAを使用して把握する方法でも、現状の表示状態の視覚で認知できる中央や上端などの行や列がなんであるかを求める方法がありましたら、お教えください。
例えば、下のような画面が見えているときに
https://www.manetama.jp/wp/wp-content/uploads/20 …
P列、あるいはK列、あるいはV列と認識できる方法のことです。
アクチブに選択しているセルの列や行を知りたいのではないです。

A 回答 (4件)

    • good
    • 0

Sub sample()


MsgBox ActiveWindow.VisibleRange.Address
MsgBox ActiveWindow.ScrollColumn

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。  固定している場合、スクロールする部分だけの把握ができるのがわかりました。 感謝です。

お礼日時:2020/06/28 17:35

こんにちは!



一例です。
表示されているExcel画面の中央部のセル番地を取得してみました。
(行数・列数によってぴったり中央!という訳にはいかないので、ほぼ中央というコトになります。)

Sub Sample1()
 Dim myRng As Range
 Dim myRow As Long, myCol As Long

  Set myRng = ActiveWindow.VisibleRange
   myRow = (myRng(myRng.Count).Row - myRng(1).Row) / 2
   myCol = (myRng(myRng.Count).Column - myRng(1).Column) / 2
    MsgBox myRng(1).Offset(myRow, myCol).Address(False, False)
End Sub


>左上隅にあたっているセルの行番号や列番号)を取得する方法・・・


MsgBox ActiveWindow.VisibleRange(1).Address(False, False)

の1行だけで取得できると思います。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございました これでやりたかったことがなんとかなります

お礼日時:2020/06/28 17:19

こんにちは、


既に回答はありますが、一例です。
やはり、ほぼ中央です。

Debug.Print ActiveWindow.VisibleRange(1) _
      .Offset(Range(ActiveWindow.VisibleRange.Address).Rows.Count / 2, _
          Range(ActiveWindow.VisibleRange.Address).Columns.Count / 2).Address
    • good
    • 0
この回答へのお礼

ありがとうございました。 これでほぼ完璧です。 本当のねらいは VBAのコードを使わすに、あるセルに画面中央部の状況を反映した表示をしたかったので、EXCEL関数だけでなんとかならないかと思っていたのですが、まあ、工夫すれば、VBAのコードを実行させてなんとかやれそうなやれそうな気がしてきました。

お礼日時:2020/06/28 17:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!