Excel VBA 特定のセルがアクティブになったらその行が自動で一番上までスクロールする-アンケート入力を楽にする(その2)

Excelでアンケート入力を楽にする『Excel VBA 特定の列のセルがアクティブになったら自動的に保存する』の続きです。

紙で回収されているアンケートを入力する場合、紙が番号順に並んでいればいいのですが、ランダムに並んでいると、あっちの行、こっちの行と行ったり来たりしないといけません。

それに検索結果の行は中央にくるので、入力ミスを防ぐために項目名のすぐ下にするために手動でスクロールするのも面倒。

ExcelVBA自動スクロール

 

検索結果やセルをアクティブにした時にその行が自動で一番上までスクロールする方法を記録します。

下図は、Excel2016、サンプルデータです。

< スポンサーリンク >

 

方法

項目名やNoなどを[ウィンドウ枠の固定]で固定しておきます。

ExcelVBA自動スクロール

 

入力項目の右のセル(例:8列目)に移動したら、自動で保存されるようにしておきます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.DisplayAlerts = False

    '保存
    If Target.Column = 8 Then
        ThisWorkbook.Save
    End If

    Application.DisplayAlerts = True
End Sub

ExcelVBA自動スクロール

ExcelVBA自動スクロール

 

Noの列(例:1列目)がアクティブになったら、その行が一番上にいくようにします。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.DisplayAlerts = False

    '保存
    If Target.Column = 8 Then
        ThisWorkbook.Save
    '上へスクロール
    ElseIf Target.Column = 1 Then
        ActiveWindow.ScrollRow = ActiveCell.Row
    End If

    Application.DisplayAlerts = True
End Sub

ExcelVBA自動スクロール

ExcelVBA自動スクロール

 

これで、かなり入力作業が楽になります。

 

< スポンサーリンク >



サブコンテンツ

このページの先頭へ