Excel VBA 特定の列のセルがアクティブになったら自動的に保存する-アンケート入力を楽にする(その1)

Excelでアンケートやデータの入力をしている時に、せっかく入力したのに、保存する前にExcelが「応答なし」状態になり今までの作業が水の泡になったことがあります。

そうならないように、VBAで特定の列のセルがアクティブになったら自動的に保存する仕組みを作っています。

下図は、Excel2016です。

< スポンサーリンク >

 

F列のセルがアクティブになったら、自動的に保存するようにします。

ExcelVBA自動保存

 

セル選択後に処理ができる「SelectionChange」と、列番号を取得する「Column」と、上書き保存の「Save」を使います。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'セル移動後の列が6だったら
    If Target.Column = 6 Then
        '保存する
        ThisWorkbook.Save
    End If
End Sub

ExcelVBA自動保存

 

保存時にバージョンが違う場合などに「互換性チェック」のメッセージが表示されるときは、「DisplayAlerts」を使うとメッセージは出なくなります。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'メッセージを出さない
    Application.DisplayAlerts = False

    'セル移動後の列が6だったら
    If Target.Column = 6 Then
        '保存する
        ThisWorkbook.Save
    End If

    'メッセージを出すように戻す
    Application.DisplayAlerts = True
End Sub

ExcelVBA自動保存

 

この方法で、いつも入力作業をしているので、データがなくなった!ということがなくなりました。

 

< スポンサーリンク >



サブコンテンツ

このページの先頭へ