スピンボタンで日付を変更する
Excel2016,2013マクロ 41回
受注表にフォームから記入する
オーダーが入った時に、在庫を調べて、受注表に記入するという流れを想定したフォームです。
受注数と受注日以外は、リストを選択することで自動的に連動して表示されます。
(サンプルファイルは、こちらから
マクロ41回サンプルデータ)
テキストボックスの日付にスピンボタン
フォーム上のコマンドボタンの位置を少し移動します。


空いたスペースにツールボックスからラベルを設置します。


続いてテキストボックスを表示します。ラベルには受注日と記入します。?


隣に スピンボタンを設置します。


スピンボタンのコード設定
スピンボタン上で右クリックしてコードの表示を選択します。


まず、スピンボタンのスピンアップのコードを記入しましょう。


スピンダウンのコードは、スピンアップのコードをコピーして、DateAdd("d", -1, 日付) と1を-1に変更するだけです。


テキストボックスの日付の初期値のコード
日付の初期値のコードを記入します。UserForm_ActivateでUserForm1.TextBox4.Value = Dateと1行追加します。


フォームの動作を確認すると、日付が表示されています。


フォームから受注表に記入するコード
今回は、表にデータが1行しかない場合(毎月新規に表を作成する場合など)を想定して、 Selection.End(xlUp).Offset(1, 0).Selectとしています。
フォームのテータをシートに転記した後、ListBox1を非選択の状態にもどし、TextBox3、TextBox4を空欄にしています。これにより、続けて在庫を確認することができるようになります。

フォームのテータをシートに転記した後、ListBox1を非選択の状態にもどし、TextBox3、TextBox4を空欄にしています。これにより、続けて在庫を確認することができるようになります。

コードは次のようになります。
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
こちらは、クリアボタンのコード。下は閉じるボタンのコードになります。




在庫を確認して、注文を入力できるようになりました。

