パソコン情報

【Access】VBAを使って、前年、今年、翌年の3年間をコンボボックスでリスト表示

ココがポイント

VBAを使って前年、今年、翌年の3年間をリスト表示

 

なぜ3年間分の年号を表示させたいのかと言えば、必要性の低い年号までも大量に表示させておくとストレスがあるので、3年分くらいをリストアップできればちょうど良かったのです。

マイクロソフトアクセス(以下Accessに略)をしばらく使っていますが、こんな簡単な事でも時間がかかってしまったのでブログにしてみました。

仕組みとしては、フォームが開いた時に、コンボボックスの値が設定されるようなVBAになるかと思います。

じつは、最近では考えるのがメンドクサイので、BardAIやBingAIを使ってVBAを考えてもらいます。

しかし、今回はなかなかうまく行かずに、コンパイルエラー続出でした。自分の質問の仕方がわるかったのでしょうか!?

そして、成功したVBAが下記になります。

Private Sub Form_Load()
'現在年を取得
Dim CurrentYear As Integer
CurrentYear = year(Now())

'コンボボックスを取得
Set cmbCurrentYear = Me.Controls("ComboBox1")

'コンボボックスに現在年を追加
cmbCurrentYear.RowSourceType = "Value List"
cmbCurrentYear.AddItem CurrentYear - 1
cmbCurrentYear.AddItem CurrentYear
cmbCurrentYear.AddItem CurrentYear + 1

End Sub

 

このVBAを設定しておくことによって、フォームを開いた時に、今年を含めた前後を含めた3年間の年号がドロップダウンリストに表示されました。

今回は、年号を3年間と言う感じで絞りましたが、通常の使い方としては、下記のように直接年号を入力して、ドロップダウンリストにする方法もある。

※もちろん自動で年号が進みません。

Private Sub Form_Load()
    CmbBox.RowSourceType = "Value List"
    CmbBox.AddItem "2022"
    CmbBox.AddItem "2023"
    CmbBox.AddItem "2025"
End Sub

プロパティから、値リストとして、入力する方法もありますが、VBAで値を設定する方法もあるので覚えておいても良いかもしれません。