アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっています。
Excelファイルから年月日を入力し、帳票を出力するマクロを作っています。
月と日はコンボボックスからの選択とさせるため
   Private Sub Workbook_Open()
    Dim i As Integer    'カウンタ

    For i = 1 to 12
       Sheet1.ComboBox1.AddItem(i)
    Next i

   End Sub

と記述したのですが、起動時にすでに現在月と現在日が
選択されているようにした方が使い勝手が良いと思いました。
(例:7月25日にExcelを立ち上げるとコンボボックスの値は7月25日)

が、NowMonth = Format(Date, "m")で現在月を取得し
i=NowMonthの時Selected・・・ができなくて困っています。

どうしたら選択表示された状態になるのでしょうか?
ご存知の方、教えてください。

A 回答 (2件)

コンボボックスの場合は、ListIndexプロパティを操作すればいいでしょう。


Selectedプロパティは、ListBoxでMultiSelectになっている時などに使います。

こんな感じでしょうか。

Private Sub Workbook_Open()
  Dim i As Integer 'カウンタ

  With Sheet1
    '月
    For i = 1 To 12
      .ComboBox1.AddItem i
    Next
    .ComboBox1.ListIndex = Month(Now()) - 1

    '日
    For i = 1 To 31
      .ComboBox2.AddItem i
    Next
    .ComboBox2.ListIndex = Day(Now()) - 1
  End With
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
最初"Month(Now())-1"の部分でなぜ-1?と不思議だったのですが、
ListIndexのプロパティを調べてわかりました。
配列のように0から始まるんですねぇ。
(っちゅうか、それが普通なんですかね?)

ASP等でSelectedが使えるのでExcelでも・・・、と思い込んでいました。
ありがとうございました。
また機会がありましたら、よろしくお願いします(ペコリ)。

お礼日時:2002/07/29 10:55

下記でどうですか。

毎月の月末日のセットは全月31日で、手を抜いていますが、取り急ぎでお許し下さい。
Private Sub Workbook_Open()
Dim i As Integer 'カウンタ
For i = 1 To 12
Sheet1.ComboBox1.AddItem (i)
Next i
'-----
For i = 1 To 31
Sheet1.ComboBox2.AddItem (i)
Next i
'-----
m = Month(Now())
d = Day(Now())
' MsgBox d
'-----
Sheet1.ComboBox1.Text = m
Sheet1.ComboBox2.Text = d
'Sheet1.ComboBox2.Value=d でも良さそう
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
結構簡単なことだったんですね(って教えてもらって失礼な事を・・・スミマセン)。
Selected出来るハズだ!と思い込んでいたので
教えてもらわないとわかりませんでした。

ASPだとif i=m then <option ... selected>と出来るのに
Excelだと指定しないと出来ないんですね。
不便だ・・・。

ありがとうございました!
また機会がありましたらよろしくお願いします(ペコリ)。

お礼日時:2002/07/29 10:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!