前提
ユーザーフォーム表示時にコンボボックスへ値が設定されるように
・プロシージャ「UserForm_Initialize」内で西暦と月を設定
する。
ユーザーフォーム画面の作成
①「ALT」+「F11」でVBEを開く。
②右クリック→「挿入」→「ユーザーフォーム」を選択する。
※オブジェクト名「UserForm1」でユーザーフォームが作成されます。
③コンボボックスを2つ配置する。
④コンボボックスのオブジェクト名を以下へ変更する。
西暦のコンボボックス:seirekiComboBox
月のコンボボックス :monthComboBox
⑤マクロ有効ブック(.xlsm)で保存する。
西暦と月のコンボボックスに値を設定する
①ユーザーフォームを右クリックし「コードを表示する」を選択する。
②西暦と月のコンボボックスに値を設定するコードを作成する。
ここでは例として
・西暦は1年前から30年後までを設定
する。
※設定する西暦は状況に応じて変更してください。
Option Explicit
Private Sub UserForm_Initialize()
Dim i As Integer
Dim today As Date
today = Date
'西暦のコンボボックス 1年前から30年後まで
For i = Year(today) - 1 To Year(today) + 30
seirekiComboBox.AddItem i
Next
'初期値として現在の西暦を設定
seirekiComboBox.Value = Year(today)
'月のコンボボックス
For i = 1 To 12
monthComboBox.AddItem i
Next
'初期値として現在の月を設定
monthComboBox.Value = Month(today)
End Sub
ユーザーフォームを表示させる
作成したユーザーフォームを表示させるコードを作成する。
Sub sample()
'ユーザーフォームを表示
UserForm1.Show
End Sub
実行結果
西暦と月のコンボボックスがあるユーザーフォームを表示できました。