• ベストアンサー

VBAで曜日を求める

年を入力するComboBox1,月を入力するComboBox2,日を入力するComboBox3 があって、それらを入力するとTextBoxに曜日が入るようにするにはどうすればよいでしょうか? いろいろやってみたのですがうまくいきません。

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

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.3

  >いろいろやってみたのですがうまくいきません。 上手くいかなかったコードをアップした方が 質問者が躓いているところが分かるの回答しやすいと思いますが。 >それらを入力すると これは入力した瞬間にということですね。 で、あれば、年、月、日を 入れ終わった後、 例えば、月を変更してもちゃんと曜日が出るようにするために 3つのComboboxChangeイベントで処理する必要があります。   分かりやすくするために少々冗長なコードにしてます。(^^;;; '----------------------------------------- Private Sub ComboBox1_Change()   Call DayOfWeek End Sub '----------------------------------- Private Sub ComboBox2_Change()   Call DayOfWeek End Sub '----------------------------------- Private Sub ComboBox3_Change()   Call DayOfWeek End Sub '----------------------------------------------- Private Sub DayOfWeek()  Dim myDate As Date  If ComboBox1.Value = "" Then Exit Sub  If ComboBox2.Value = "" Then Exit Sub  If ComboBox3.Value = "" Then Exit Sub  myDate = DateSerial(ComboBox1, ComboBox2, ComboBox3)  TextBox1.Value = Format(myDate, "aaaa") End Sub '------------------------------------------------ Formatの第2引数の値で表示が違う  "aaa" は、"金"  "aaaa" は、"金曜日"    

acchandesu
質問者

お礼

教えていただいた方法でできました。 3つ(ComboboxChangeイベント)の処理をする必要があったのですね。 それがわかりませんでした。 今度からは上手くいかなかったコードをアップするように心掛けます。 ありがとうございました。

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

MsgBox Format(DateSerial(2009, 3, 6), "aaa") の様な感じのこととか?

acchandesu
質問者

補足

MsgBoxに表示するのではなく、曜日のみTextboxに表示させたいです。 また、それぞれのComboBoxの値から曜日を求めるようにしたいです。 なにぶんにもVBAの初心者でわかりずらい表現かもしれませんが宜しくお願いします。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

Format(2008/03/06,"aaa") って、感じで曜日は出るけど・・・

関連するQ&A