三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

XXXXXXさんへ VBA コンボボックスの初期値処理 デバッグしてみました

質問が来たので、デバックしてみたが、
動いてしまいました。

いつもの酔っ払い右往左往のデバッグ動画
【VBA デバッグ風景】VBA コンボボックス 初期値のセットをデバッグ 2018-07-14【三流君】 - YouTube
www.youtube.com

コンボボックスの初期値は、.ListIndex を使用した
.ListIndex = Month(myday) - 1
のままでもOKだと思います。

また、.Valueを使用した
UF002.ComboBox2.Value = Month(myday)
の.Valueをセットでも動くと思います。

値が" "空白の件ですが、
違う所で何か初期化していないか?
UF002の初期処理と違うフォーム
※私の知らないUF001とか003が何かしていたりしませんか?

テストの単体デバッグで動いてしまい、
原因がわかりませんが、
全体の流れを見直してみては・・・

> MsgBox "ComboBox1.Value" & ComboBox1.Value & "ComboBox2.Value" & ComboBox2.Value
ここみると、
もしかして、UF002.が抜けていて、見ている場所が違う場所のComboBoxとか?
MsgBox "ComboBox1.Value" & UF002.ComboBox1.Value & "ComboBox2.Value" & UF002.ComboBox2.Value
とUF002を指定して表示するとどうなりますか?

たまたま、
年は、違うフォームでも2018が表示されて、
月は " " なのかなぁ・・・

う~ん、
あとは、違う場所で
UF002.ComboBox2.Value
を壊しているのかなぁ?


ズバリの回答じゃないのですが、
解決の糸口、ヒントとなれば幸いです。 三流プログラマー Ken3

下記、いただいた質問です。


さて、カレンダーで日付を選ぶインフラを作ってます。

上記、キャプションでは、Userform1と出てますが、

オブジェクト名は、UF002です。


42個のコマンドボタンに対して、Captionで、日付を

入れてゆく。


Combobox1は年、combobox2は月として、

年と月を動かしたら、カレンダーの日付、すなわち

コマンドボタンのキャプションを変えるものを作ってます。


さて、42個のボタンにキャプションを入れるsubルーチンは

できたのですが、Comboboxの初期設定がうまくいきません。


下記、



Private Sub UserForm_Initialize()

'完成 2018/7/13

Dim myday As Date
Dim f As Long
Dim Y As Byte
Dim y2 As Long

myday = Month(Date) & "/1/" & Year(Date) 'このユーザーフォームの初期値はあくまで当月の1日

'myday = #8/1/2018# '8月でテスト

'MsgBox "myday" & myday

f = DateSerial(Year(myday), Month(myday), Day(myday))

四十二個のボタンにキャプションと値を格納 f

'+++++++++++++コンボボックスの初期値の設定+++++++++++++++++

'1つ目のComboboxは年

For Y = 0 To 2

UF002.ComboBox1.AddItem Year(myday) + Y

Next Y

UF002.ComboBox1.ListIndex = 0

'2つ目のComboboxは日


For y2 = 1 To 12 'コンボボックス2のデフォルト設定はうまく言ってるけど、この書き方でいいのか謎。

UF002.ComboBox2.AddItem y2

Next y2

UF002.ComboBox2.ListIndex = Month(myday) - 1

'Combobox1、2のデフォルト値

UF002.ComboBox1.Value = Year(myday)
'ぎゃぉーーーーーー コンボボックス2のでふぉるとちがかくのうされない

UF002.ComboBox2.Value = Month(myday)



MsgBox "ComboBox1.Value" & ComboBox1.Value & "ComboBox2.Value" & ComboBox2.Value

'+++++++++++++以上 コンボボックスの初期値の設定+++++++++++++

End Sub

  • UNQTE-


Combobox2の初期値を当月の月の数値である7を

入れたいのですが、これが、””と認識されます。


そもそもcomboboxの初期値って、Valueプロパティーで

設定するのは、まちがっているのでしょうか。


上記質問を元にデバッグしてみたら、
動いてしまった、そんなお話でした・・・・・

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)