- ベストアンサー
指定月の火曜日を返すVBA
エクセルVBAの質問です。セルA1に年(例:2009)、セルB1に月(例:5)が入力されたときに、この数値をもとに祝祭日を除いた指定月の全火曜日にあたる日付をコラムCに自動的にリストアップすることは可能でしょうか・・・・?また、リストアップする際、該当日を2回連続してリストアップしたいです(今月でしたら、縦に5/12、5/12、5/19、5/19、5/26、5/26という形で)。宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こういう質問って (1)自分でやってみたけど、どうしてもできないところがあるので、ギリギリできないところを、分かりやすく質問にして「質問を読んだ人が、ああ分かりやすい質問だ! 答え甲斐のある問題だ! ようし、挑戦するぞ!」と思って、答えて、その結果、質問と答えが、あとで読んだ人も参考になるような1個の立派なインターネット記事になる場合 が100点で、 (2)アーなんかめんどくさい質問だな、ようし、投げちゃえ、どっかのヒマ人が答えるからそれをそのまま移せば仕事がいっちょ上がりだ。ヘヘッ楽ちんらくちん と思うのが0点だと思うけど、とりあえず、ご自分の質問何点だと思います? (特に「2回連続」ってところあたり。。。) ぼくもこの掲示板すごく役に立つので、いつもみんなの力を借りて、感謝の気持ちでいっぱいですけど、せめて50点ぐらいの質問は書いているつもりです。 いちおう動くプログラムは書いたけど、考え直して数か所「伏せ字」にしてみました。 Sub listTuesday() Dim y As Integer y = Cells(1, 1) Dim m As Integer m = Cells(1, 2) Dim c As Integer c = 3 Dim r As Integer r = 0 Dim d As Variant On Error GoTo date_err d = DateValue(Str(y) + "-" + Str(m) + "-" + "01") While Month(d) = m 'とりあえず4月と5月だけ入れてみた If d = "2009/04/29" _ ★数行略★ Or d = "2009/05/05" _ Or d = "2009/05/06" Then '何もしないで次へ ElseIf Weekday(d) = vbTuesday Then ★数行略★ d = d + 1 Wend Columns("C:C").EntireColumn.AutoFit 'そのままだと狭いので Exit Sub date_err: MsgBox "日付が正しくないかも" End Sub
その他の回答 (1)
- 山路 独(@j59fmk53jh)
- ベストアンサー率2% (2/83)
weekdayだったかな? 年月日の指定によって、その日の曜日が判別できたと思いますが、それでリストアップは可能では? 後はヘルプなりMSDNなりで確認して、ご自分でコーディングしてください。
お礼
皆さま、早急にご対応いただきまして本当にありがとうございました。 また、質問の文面で皆様に不快な思いをさせてしまったようでお詫びいたします。