Excel VBA チェックリストでセルをクリックしたら自動で日付が入る

Excelでアンケートの回答や、提出物などを管理するのにチェックリストを作ったときに、いつ回答したのか、いつ提出したのかを記録するために1人1人日付を入力することがありますが、手入力だと面倒なので、クリックしたら日付が入るようにしました。

サンプルを記録します。

下図は、Excel2016です。

ExcelVBA日付自動

 

< スポンサーリンク >

 

方法

[開発]タブ>[コードの表示]をクリックします。

ExcelVBA日付自動

 

オブジェクトボックスを「Worksheet」を選択します。

ExcelVBA日付自動

 

自動で「Private Sub Worksheet_SelectionChange(ByVal Target As Range)」となるので、「Private Sub Worksheet_SelectionChange(ByVal Target As Range)」と「End Sub」の間に次のコードを書きます。

ExcelVBA日付自動

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'シート用変数
    Dim ws As Worksheet
    'シートを変数に
    Set ws = ThisWorkbook.Worksheets("Sheet1")

    '複数選択されている場合は終了
    If Target.Count > 1 Then
        Exit Sub
    End If

    '選択されたセルが何か入力されている場合 または
    'C1に値が入っていない場合は終了
    If Target.Value <> "" Or ws.Range("C1").Value = "" Then
        Exit Sub
    End If

    '入力範囲かどうかチェック用変数
    Dim cheRng As Range

    '入力範囲(C4~C10)かどうかを調べるために変数に
    Set cheRng = Application.Intersect(Target, ws.Range("C4:C10"))

    '入力範囲ではない場合
    If cheRng Is Nothing Then
        Exit Sub
    End If

    '選択されたセルにC1の値を入力
    Target.Value = ws.Range("C1").Value

End Sub

ExcelVBA日付自動

 

セルをクリックするとC1の日付が自動で入力されます。

ExcelVBA日付自動

 

< スポンサーリンク >



サブコンテンツ

このページの先頭へ