• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:access 和暦をコンボボックスに格納したい)

和暦をコンボボックスに格納したい

このQ&Aのポイント
  • コンボボックスに、和暦を今年(現在年度)から明治1年まで、降順に格納する方法について教えてください。
  • ユーザー定義関数を使用して値集合タイプに和暦を格納したいですが、正しい式がわかりません。具体的なコードとして、`yearsel`関数の式の部分がうまくいかないので、正しい方法を教えてください。
  • 和暦を格納するコンボボックスにおいて、正しい年号を降順で表示するためにはどのような式を使用すればよいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • iryuza
  • ベストアンサー率57% (16/28)
回答No.2

明治元年の式を間違えました。 Dim i As Integer Dim targetYear As Date i=0 targetYear = Date Do While Year(targetYear) >= 1868 targetYear = DateAdd("yyyy",-i , Date) ComboBox.AddItem format(targetYear,"gggee") i=i+1 Loop

ownmart
質問者

お礼

ありがとうございます。 上記参考に解決しました。 ↓ Case acLBGetValue ' データを取得します。 dyear = DateAdd("yyyy", -row, Date) targetyear = Format(dyear, "ggge") accessの標準マクロのvb6を使って作成しています。 comboboxのadditemがなくて非常に不便です。(TT) 上記ユーザー定義にて動作しました。 明治元年は、(本日から合算)3/1では、取得できないのもわかりました。 明治が有効な日付 10/23~でないと、西暦変換はできないのですね。

その他の回答 (1)

  • iryuza
  • ベストアンサー率57% (16/28)
回答No.1

手元にVBAを走らせる環境がありませんので、参考程度に読んでください。 コンボボックス名:ComboBox とりあえず150年分から Dim i As Integer Dim targetYear As Date For i = 0 to 150 targetYear = DateAdd("yyyy",-i , Date) ComboBox.AddItem format(targetYear,"gggee") Next i 明治元年は1868年なので Dim targetYear As Date targetYear = Date Do While Year(targetYear) >= 1868 targetYear = DateAdd("yyyy",-i , Date) ComboBox.AddItem format(targetYear,"gggee") Loop 上記の様な感じでいけそうな気がします。 検証は、していませんのであくまで参考程度に

関連するQ&A