スピンボタンで日付を変更する

スピンボタンで日付を変更する
スピンボタンで日付を変更する

リンクユニット


Excel2016,2013マクロ 41回

受注表にフォームから記入する

オーダーが入った時に、在庫を調べて、受注表に記入するという流れを想定したフォームです。
受注数と受注日以外は、リストを選択することで自動的に連動して表示されます。

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

テキストボックスの日付にスピンボタン

フォーム上のコマンドボタンの位置を少し移動します。
スピンボタンで日付を変更するマクロ1
空いたスペースにツールボックスからラベルを設置します。
スピンボタンで日付を変更するマクロ2
続いてテキストボックスを表示します。ラベルには受注日と記入します。?
スピンボタンで日付を変更するマクロ3
隣に スピンボタンを設置します。
スピンボタンで日付を変更するマクロ4

スピンボタンのコード設定

スピンボタン上で右クリックしてコードの表示を選択します。
スピンボタンで日付を変更するマクロ5
まず、スピンボタンのスピンアップのコードを記入しましょう。
スピンボタンで日付を変更するマクロ6
スピンダウンのコードは、スピンアップのコードをコピーして、DateAdd("d", -1, 日付) と1を-1に変更するだけです。
スピンボタンで日付を変更するマクロ7

テキストボックスの日付の初期値のコード

日付の初期値のコードを記入します。UserForm_ActivateUserForm1.TextBox4.Value = Dateと1行追加します。
スピンボタンで日付を変更するマクロ8
フォームの動作を確認すると、日付が表示されています。
スピンボタンで日付を変更するマクロ9

フォームから受注表に記入するコード

今回は、表にデータが1行しかない場合(毎月新規に表を作成する場合など)を想定して、 Selection.End(xlUp).Offset(1, 0).Selectとしています。
フォームのテータをシートに転記した後、ListBox1を非選択の状態にもどし、TextBox3、TextBox4を空欄にしています。これにより、続けて在庫を確認することができるようになります。
スピンボタンで日付を変更するマクロ10
コードは次のようになります。
Private Sub CommandButton1_Click()
    Me.Hide
    Sheet1.Range("B" & Rows.Count).Select '
    Selection.End(xlUp).Offset(1, 0).Select '
    ActiveCell.Value = TextBox4.Value
    ActiveCell.NumberFormatLocal = "yyyy/mm/dd"
    ActiveCell.Offset(0, 1).Value = ListBox1.Value
    ActiveCell.Offset(0, 2).Value = ListBox2.Value
    ActiveCell.Offset(0, 3).Value = TextBox3.Value
    ActiveCell.Offset(0, 3).NumberFormatLocal = "G/標準"
    ActiveCell.Offset(0, 4).Value = TextBox2.Value
    Me.ListBox1.ListIndex = -1 '
    TextBox3.Value = ""
    TextBox4.Value = ""
    Me.Show
End Sub
こちらは、クリアボタンのコード。下は閉じるボタンのコードになります。
スピンボタンで日付を変更するマクロ11
スピンボタンで日付を変更するマクロ11
在庫を確認して、注文を入力できるようになりました。
スピンボタンで日付を変更するマクロ12