- ベストアンサー
VBAでプルダウンの表示
- VBAを使用して、ブックを開いたときにプルダウンのユーザーフォームが表示される処理を作成したいです。
- そして、プルダウンにはブックを開いた日から1年間の年月日が表示されるようにしたいです。
- 具体的な処理の流れを考えましたが、実際にどうVBEに書いていいかわかりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> ブックを開いたときに、プルダウンのユーザーフォームが表示され、 ならば、ユーザーフォームの中で処理完結するのが真っ当でしょう。 > 1、シートに「201507」~「201712」ぐらいまでをA列に記載し、 シート使うのは冗長では。 プルダウン選択してフォームでOK押したら、シートのそのセルに飛ぶとかなら、別ですが。 -- > 「201507」「201508」「201509」「201510」・・・のように年と月を表示するようにしたいです。 普通にアイテム追加するなら、 Private Sub UserForm_Initialize() Dim YYYY As Integer Dim MM As Integer Dim iCount As Integer YYYY = Year(Now()) ' 現在の年を取得 MM = Month(Now()) ' 現在の月を取得 For iCount = 1 To 12 ComboBox1.AddItem (Right("000" & YYYY, 4) & Right("0" & MM, 2)) MM = MM + 1 If 12 < MM Then MM = 1 YYYY = YYYY + 1 End If Next iCount ComboBox1.ListIndex = 0 End Sub とか。
その他の回答 (2)
- FEX2053
- ベストアンサー率37% (7991/21371)
まあ、コードで書けば別にそれでもいいんですけどね。 なんで「プロパティ」でシート上のセルを参照させないんですかね。 http://www.239-programing.com/excel-vba/ufm/ufm025.html (真ん中あたりのRowSourceプロパティ参照) 初めから表示する個数が決まっているなら、ワークシート上に 算式で計算させたセルを表示させる方が簡単だと思うんですが。
お礼
回答ありがとうございました。 VBA初心者であり、そのような方法があることを知りませんでした。 勉強になりました、ありがとうございます。
- keithin
- ベストアンサー率66% (5278/7941)
ユーザーフォームにはCombobox1が配置されている。 ユーザーフォームモジュール: private sub Userform_Initialize() dim i as integer for i = 0 to 11 me.combobox1.additem format(dateadd("m",i,date), "yyyymm") next i end sub
お礼
回答ありがとうございました。
お礼
回答ありがとうございました。 丁寧な回答かつ、コードも記載していただき大変勉強になりました。