[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『今日のセル(行)が一番上に表示されるようにしたい』(ひで)
1〜3は隠してあります。
A列には日付が入力されており,「年」は表示してありません。
A列
4 3/12
5 3/13
6 3/14
7 3/15
・
・
・
の様に続いています。
このシートを開いたとき,
例えば本日が「3月13日」だった場合,
画面の一番上端が5行目になるように
翌日に開いたときには
6行目が一番上になるようにするには
どのような方法がありますか?
シートを開くときのマクロを設定する必要がありますが,
よろしければ教えてください。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
Sub test() Dim iw As Long iw = DateDiff("d", Range("A4"), Int(Now)) Application.Goto Cells(Rows.Count, "A") DoEvents Application.Goto Cells(iw + 4, "A") End Sub (???) 2017/03/22(水) 11:35
検索すればたくさん出てきますが、一例を。 ThisWorkbookモジュールに貼り付けてみてください。
Private Sub workbook_open() Dim myRange As Range Set myRange = Range("A:A").Cells.Find(what:=Date) If Not myRange Is Nothing Then myRange.Activate ActiveWindow.ScrollRow = myRange.Row End If End Sub
(2Win) 2017/03/22(水) 11:36
はじめのシート名は「入力」であり,ブックを開くときにはauto open で「表示」シートが開くようにしてあります。
表示シートA2にはtoday()を入力してあり,本日が表示されています。
この状態で,「入力」シートをアクティブにしたときに
その日付の行が一番上にくるように自動スクロールしたいのですが,
いかがでしょうか。
ご教授いただければ幸いです。
(ひで) 2017/03/22(水) 11:54
ああ、シートでしたか。勘違いしました。失礼しました。 入力シートのシートモジュールに貼り付けてください。
Private Sub worksheet_activate() Dim myRange As Range Set myRange = Range("A:A").Cells.Find(what:=Date) If Not myRange Is Nothing Then myRange.Activate ActiveWindow.ScrollRow = myRange.Row End If End Sub
Workbookモジュールの方はコードを消してください。 (2Win) 2017/03/22(水) 12:04
ちなみにA列ではなくてB列の間違いでした。
Aを→Bに直してシートをクリックしてみましたが,
スクロールしません。
何が原因なのでしょうか。(ひで)
(ひで) 2017/03/22(水) 12:18
できました。B列の日付表示は
一番上のみ日付を入力して
以下は上のセル+1で表示させていました。
値貼り付けをしたら,できました。
ちなみに,セル値+1のままではできませんよね。(ひで)
Find(what:=Date) ここを Find(what:=Date, LookIn:=xlValues) に変えてください。 (2Win) 2017/03/22(水) 12:46
Dim myRange As Range Set myRange = Range("b:b").Cells.Find(what:=Date, LookIn:=xlValues) If Not myRange Is Nothing Then myRange.Activate ActiveWindow.ScrollRow = myRange.Row End If End Sub
B列 セル番号+1 ではスクロールしません。(ひで)
(ひで) 2017/03/22(水) 13:31
ありがとうございました。(ひで)
(ひで) 2017/03/22(水) 13:36
こちらの環境だとスクロールします。 すみません。原因分からずです。
(2Win) 2017/03/22(水) 13:40
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.