フォームからリストに転記するコード

フォームからリストに転記するコード
フォームからリストに転記するコード

リンクユニット


マクロ 32回

フォームからリストへの転記をコードに

マクロ講座31回でフォームの形状ができましたので、今度はコードを記述していきます。


(サンプルファイルは、こちらから マクロ32回サンプルデータ

TextBoxのオブジェクト名変更

ユーザーフォームのキャプションを入力してくださいに変更しました。
フォームからリストに転記するコードマクロ1
ここからは、コードで利用しやすいように、コントロールの名称を変更していきます。
TextBox1のオブジェクト名を「titile」に変更。
フォームからリストに転記するコードマクロ2
タイトルには日本語の全角文字を入力するので、IMEModeを全角ひらがなモードにします。4-fmIMEModeHiragana(IME を全角平にする。)に変更します。
デフォルトは、0-fmIMEModeNoControlで、これはIMEのモードを変更しません。
TextBox2のオブジェクト名を「no」に変更。
フォームからリストに転記するコードマクロ3
Noには数値を入力するので、IMEModeを数値用に3-fmIMEModeDisable(IME をオフにする。)に変更します。
リリースDAYの欄も数値で日付を入力しますから、IMEModeを数値用に3-fmIMEModeDisable(IME をオフにする。)に変更します。
TextBox3のオブジェクト名を「bookday」に変更。
フォームからリストに転記するコードマクロ4
CommamandButton3のオブジェクト名を「Addtolist」に変更。
フォームからリストに転記するコードマクロ5

入力ボタンのコード

入力ボタンをダブルクリックしてコードを表示させます。
フォームからリストに転記するコードマクロ6
入力したコードは次のようになります。
Me.Hide は、メッセージボックスを表示させる時に邪魔なのでフォームを隠しています。
フォームからリストに転記するコードマクロ7
B2セルを選択して、そこからEnd(xlDown)。
End(xlDown)で下方向に最下端を探すという意味です。そしてOffset(1, 0)でその次の空白行を選択することになります。
Private Sub Addtolist_Click()
    Me.Hide
    Sheet1.Select
    Range("B2").End(xlDown).Offset(1, 0).Select
    ActiveCell.Value = title.Value
    ActiveCell.Offset(0, 1).Value = no.Value
    ActiveCell.Offset(0, 2).Value = bookday.Value
    ActiveCell.Offset(0, 2).NumberFormat = Range("D3").NumberFormat
    
    MsgBox "追加しました!"
    Me.Show
End Sub
テキストボックスのオブジェクト名を変更してあるので、コードがわかりやすくなっていますね。
フォームからリストに転記するコードマクロ8
キャンセルボタンは入力内容をキャンセルしてクリアにするために設置しました。
フォームからリストに転記するコードマクロ9
キャンセルボタンでテキストボックスの内容がまとめてクリアされます。
フォームからリストに転記するコードマクロ10
おすすめコンテンツ