'アップ
Private Sub SpinButton1_SpinUp()
'1日進める
TextBox1.Value = DateAdd("d", 1, TextBox1.Value)
End Sub
'ダウン
Private Sub SpinButton1_SpinDown()
'1日戻す
TextBox1.Value = DateAdd("d", -1, TextBox1.Value)
End Sub
日付を1日だけ進めるのは、『DateAdd("d", 1, "2020/1/1")』でできます。
日付を1日だけ戻すのは、『DateAdd("d", -1, "2020/1/1")』でできます。
なのでスピンボタンのアップで1日進めたい場合はアップがクリックされた場合に実行するコード『Private Sub SpinButton1_SpinUp()』の中に記載します。
同じようにスピンボタンのダウンで1日戻したい場合は『Private Sub SpinButton1_SpinDown()』の中に1日戻すコードを記載します。
VBAコードを実行してみます。
最初にテキストボックスの中に日付『2020/1/1』を入力しておきました。
実行前
スピンボンタンのアップをクリックしてみます。
スピンボタンのアップで1日進める
日付が1日進みました。
スピンボタンのダウンをクリックしてみます。
スピンボタンのダウンで1日戻す
日付が1日戻りました。
『月』を進める・戻す
日付を1か月進める方法と戻す方法について説明します。
同じように『DateAdd』を使います。引数が『"m"』となる点が違います。
日付の『月』を操作するVBAコードです。『ユーザーフォームの中のコード』に記載します。
'アップ
Private Sub SpinButton1_SpinUp()
'1か月進める
TextBox1.Value = DateAdd("m", 1, TextBox1.Value)
End Sub
'ダウン
Private Sub SpinButton1_SpinDown()
'1か月戻す
TextBox1.Value = DateAdd("m", -1, TextBox1.Value)
End Sub
日付の『月』を進める場合は、『DateAdd("m", 1, "2020/1/1")』とします。
日付の『月』を戻す場合は、『DateAdd("m", -1, "2020/1/1")』とします。
スピンボタンのアップとダウンの中に上記のコードを入力するという感じです。
VBAコードを実行した結果を見てみます。
最初はテキストボックスの中に日付『2020/1/1』を記載しておきました。
実行前
スピンボタンのアップをクリックしてみます。
スピンボタンのアップで1か月進める
日付が1か月進みました。
スピンボタンのダウンをクリックしてみます。
スピンボタンのダウンで1か月戻す
日付が1か月戻りました。
『年』を進める・戻す
続いて日付を1年進める方法と戻す方法について説明します。
同じように『DateAdd』を使います。引数が『"yyyy"』となる点が違います。
日付の『年』を操作するVBAコードです。『ユーザーフォームの中のコード』に記載します。
'アップ
Private Sub SpinButton1_SpinUp()
'1年進める
TextBox1.Value = DateAdd("yyyy", 1, TextBox1.Value)
End Sub
'ダウン
Private Sub SpinButton1_SpinDown()
'1年戻す
TextBox1.Value = DateAdd("yyyy", -1, TextBox1.Value)
End Sub
'初期値の設定
Private Sub UserForm_Initialize()
'セルから日付を取得
TextBox1.Text = ActiveSheet.Cells(1, 1)
End Sub
'アップ
Private Sub SpinButton1_SpinUp()
'1日進める
TextBox1.Text = DateAdd("d", 1, TextBox1.Text)
End Sub
'ダウン
Private Sub SpinButton1_SpinDown()
'1日戻す
TextBox1.Text = DateAdd("d", -1, TextBox1.Text)
End Sub
'アップ
Private Sub SpinButton2_SpinUp()
'1か月進める
TextBox1.Text = DateAdd("m", 1, TextBox1.Text)
End Sub
'ダウン
Private Sub SpinButton2_SpinDown()
'1か月戻す
TextBox1.Text = DateAdd("m", -1, TextBox1.Text)
End Sub
'アップ
Private Sub SpinButton3_SpinUp()
'1年進める
TextBox1.Text = DateAdd("yyyy", 1, TextBox1.Text)
End Sub
'ダウン
Private Sub SpinButton3_SpinDown()
'1年戻す
TextBox1.Text = DateAdd("yyyy", -1, TextBox1.Text)
End Sub
'ボタンクリック
Private Sub CommandButton1_Click()
'セルへ日付入力
ActiveSheet.Cells(1, 1) = TextBox1.Text
End Sub
最初に初期設定『Private Sub UserForm_Initialize()』でセルから日付を取得しています。
スピルボタンで年月日の変更するVBAコードを記載しています。
ボタン『Private Sub CommandButton1_Click()』にテキストボックスの日付をセルへ入力するVBAコードを記載しています。