[[20170322110244]] 『今日のセル(行)が一番上に表示されるようにした』(ひで) ページの最後に飛ぶ

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

 

『今日のセル(行)が一番上に表示されるようにしたい』(ひで)

 
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


ありがとうございます。2winさんのマクロはブックを開くときに実行されてしまいませんか。

はじめのシート名は「入力」であり,ブックを開くときには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

Private Sub worksheet_activate()
 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.