見出し画像

チェックボックスをクリックすると、右のセルにクリックした日時が入力されるExcelシート

はじめまして!ミネコです。

需要があるかわかりませんが、タイトルのようなExcelが必要になったのでつくりました。
いろんなページやサイトを参考にさせていただいたので、自分のも誰かの参考になると嬉しいな、と思い、初投稿することにしました。

コードをコピペするのもめんどくさいわ!という方のために、サンプルファイルも置いておきます。

2022/9/26 以下追記 ---
コードにゴミが残っていたので修正しました!恥ずかしい!
いないと思いますが、コピペ・ダウンロードされた方は修正または再ダウンロードをお願いいたします。


使い方

  1. Excelシートにチェックボックス(フォームコントロールを使用しました)を配置します。

  2. VBE を起動( ALT+F11 キー押下)して、「標準モジュール」の中の「Module1」の中に下のコードをコピペします。

  3. チェックボックスのシートに戻り、チェックボックスを右クリックして「マクロの登録」をクリックします。

  4. 「EnterDate」を選んで「OK」をクリックします。

Sub EnterDate()
    Dim currentCell As String
  
    Application.ScreenUpdating = False  '画面の更新を停止
  
    currentCell = ActiveSheet.CheckBoxes(Application.Caller).TopLeftCell.address    'クリックしたチェックボックスのセル取得
            
    With Range(currentCell).Offset(, 1)                         '1つ右のセル取得
    
        'チェックボックスが有効で右のセルが空の場合は日付を入力
        If ActiveSheet.CheckBoxes(Application.Caller).Value = xlOn And .Value = "" Then
            .Value = Format(Now, "yyyy/mm/dd hh:mm")
            
       'チェックボックスが無効で右のセルに何か入力されている場合は空にする
        ElseIf Selection.Value = xlOff And .Value <> "" Then
            .Value = ""
        End If
    End With
    
    Application.ScreenUpdating = True   '画面の更新を再開
End Sub

どうでしょうか?
チェックボックスをクリックすると、チェックボックスの右のセルにクリックした日時が入力されるはずです。

よくわからん!という方は下のサンプルファイルをダウンロードして使ってみてください。

サンプルファイル

まとめ

久しぶりにコードを書いて(書いたというほどでもありませんが)楽しかったです!
また機会があればこうして共有したいです。

何か質問などありましたら、お気軽にお問い合わせください。

この記事が気に入ったらサポートをしてみませんか?