図4:Activeセルとフォームのイイ関係を築こう |
![]() |
例えば、ユーザーに顧客名や商品名などを“正確な列に、正確なデータを直感的に”入力させたい場合には、以下のようなActiveCellプロパティを利用して、「現在選択しているセルのあるアクティブな行のデータを更新する」ようなコードを用意しておくと便利です。
Sub PushAnyButton(myMsg, myCol)
myRow = ActiveCell.Row
Cells(myRow, myCol).Value = myMsg
' アクティブな行のmyCol番目の列に対してmyMsgを書き込む
If Cells(myRow, 2) = "" Then
Cells(myRow, 2).Value = Format(Date, "m月d日")
Cells(myRow, 3).Value = Cells(1, 5).Value
End If
' myMsgを追加した列に日付等の固定的なデータの入力が
' 無い場合は該当するものを書き込む処理をする
End Sub
上記の処理は「アクティブな行のmyCol番目の列に対してmyMsgを書き込む」ものです。この「PushAnyButton」を「標準モジュール」に書き込み、すべてのユーザーフォームから利用できるようにしておくのです。そして、それぞれのフォームには関数を利用することで、さまざまな項目の入力処理をこの関数ひとつで管理することができます。