スキマ時間でVBAの勉強をしているWebディレクターのふるたです。
プログラム入門と言えば、TODOアプリを作るのが定番?かと思い、作ってみました。
Sub addNewTodo(newTodoItem() As Variant)
Dim newTodoRng As Range
Dim rowNo As Long
With Worksheets(1)
rowNo = .Cells(Rows.Count, "B").End(xlUp).Row + 1
Set newTodoRng = .Range(.Cells(rowNo, "B"), .Cells(rowNo, "F"))
End With
newTodoRng.Value = newTodoItem
End Sub
Sub inputData()
Dim itemRec(4) As Variant
itemRec(0) = Range("C3").Value
itemRec(1) = Range("C5").Value
itemRec(2) = Range("C7").Value
itemRec(3) = Range("C9").Value
itemRec(4) = "削除"
Call addNewTodo(itemRec)
End Sub
登録ボタンには「inputData」のマクロを登録
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim res As VbMsgBoxResult
If Target.Value = "削除" Then
res = MsgBox("タスクを削除しますか?", vbYesNo + vbQuestion, "確認")
If res = vbYes Then
Target.EntireRow.Delete
MsgBox "削除しました。"
End If
End If
End Sub
以上で、簡単なTODOアプリの完成です。
エクセルのワークシートでのセル番号などを合わせれば、上記のコードをコピペすれば動作するはずです。
ここからはコードの解説となります。長いので興味のある人だけ読んでください。
これで、一覧に追加するマクロは完成です。
以上で、新しいTODOデータを取得して、一覧に追加するコードは完了です。
以上で、コードの解説は終了です。
今回は、エクセルVBAでプログラム入門の定番「TODOアプリ」を作ってみました。やはり、アプリ的なものをつくって動かすとプログラムを書いている実感がわきますね。ただ、解説を丁寧に書こうとすると記事のボリュームが多くなります。これでも省略したつもりだったのですが。。。だれが読むんだろうか?自己満足で終わっているような気もしますが。。。まあいいか。
また、簡単なアプリを作ったらブログで紹介したいと思います。