![見出し画像](https://assets.st-note.com/production/uploads/images/61734620/rectangle_large_type_2_7095eebd1e0548c85bbb7638d520edf7.jpeg?width=1200)
Photo by
na_hiro
エクセルのマクロに手を出した話
ある作業の進捗をチェックしたり、作業項目の抜け漏れがないか確認する為に、エクセルで簡単なリストを作ろうと思ったのがきっかけです。
これは便利!と思ったので、今回作成したコードをメモとして記録しようかなと。
各項目の現在の状態を表すために、「作業中」、「完了」という値を選べるようにしました。
(完了ってしたら、隣のセルにその日の日付を自動入力されるようにしたいな・・・。)
ネットで調べてみると、どうやら「マクロ」という機能を使えば可能だという事。
今まで、バッチやSQLのスクリプトは書いたことがあるけど、マクロは手を出したことがない・・・。
Googleさんに教えてもらいながら、以下のように記載してみました。
1.やりたいこと
作業完了と入力したセルの右のセルに完了日付を自動入力されるようにしたい。
2.プロシージャーに記載した内容
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("B4:B104"), Target) Is Nothing Then
Application.EnableEvents = False
Target.Offset(, 1) = Date
Application.EnableEvents = True
End If
End Sub
すべての意味はよくわかっていないけれども、指定のセル(B4からB104まで)に何かしら文字やら数字やら入力されたら、その右のセル(, 1)に日付を自動で入力する、といった内容。
マクロ、実際に書いてみて、思い通りに処理できるようになると面白いです。
いつか、ゆっくり勉強してみたいなぁ。