| すぐマク YNxv9a2 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| その月の日数と月初の曜日を調べて表示するには? |
|
|
|||||
| エクセルVBAで年、月を入力すると日付と曜日を自動的に変えるには、どのようなプログラムを考えればよいですか |
|
|||
「年月を入力すると、その月の日数と月初の曜日を調べて表示する」と解釈して、お答えします。![]() 年月の入力はインプットボックスで行うとしました。 答えを下図のような「回答」と名づけられたシートに表示することにしてみました。 ![]() マクロの詳細は こちら「日数と月初曜日を表示」 を見てください。 |
| スケジュール表のプログラムを作るには? |
|
|
|||
|
プログラムの作り方をお教えするのは容易ではありませんが、ご熱心の様子ですので
骨格を下記に一例として書いておきます。 スケジュール表の場合、罫線などをともなうかと思いますが、ここでは別問題としました。 前提 ・・ 縦方向に日付を並べることにし、A列を使うことにします。 1からはじめて前回回答の「その月の日数」まで行を下げながら1日づつ増やした値 を記入します。 色々な方法がありますが例えば
Sheets("回答").Select
その月の日数 = Range("B4").Value
For 日数 = 1 To その月の日数
Sheets("スケジュール表").Cells(日数, 1) = 日数
Next
次に、曜日をB列に展開します。 前回の回答で「その月は何曜日から始まる」かが分かっていますね。B1セルに書かれる曜日がその曜日になることは分かりますね。 よってB列の「その月の日数」番目のセルまで、行を下げながら曜日の順番で値を記入します。 日数は単純でしたが、曜日はやや複雑になります。前回回答で「その曜日は何番目です」がありましたね。日曜が1で土曜が7です。 つまり、繰り返しの最大値は7となります。 B1セルから記入を開始した繰り返しは7で終わりです。 続いて1(日曜)から7(土曜)まで「その月の日数」に到達するまで、繰り返して記入します。 この繰り返しは、For Nextを組み合わせれば作れると思います。根気よく考えてください。 さらに、工夫が必要です。 曜日を1から7の数字のままで表わすわけにはいかないので、日、月,火・・に変換します。 これも色々な方法がありますが、VLOOKUPがいいかな、と、思います。 エクセルのオンラインヘルプで研究してみてください。 最後に、月によって28行で終ったり31行まであったり、表が伸縮しますね。 これを、きれいに印刷するには「すぐに役立つエクセルVBAマクロ集」の「伸縮する罫線 ある表の印刷」を参考になさってください。(自己PRです。お許しを) あなたは、よいテーマに取り組んでみえますね。スケジュール表は一見単純そうに見えますが、プログラム的には大事な要素を相当含んでいると思います。 これをクリアできれば、色々なテーマをこなせるようになれると思います。ぜひ、根気よく 頑張ってください。ご成功を祈ります。 なお、私は現在、他の人からのご質問への回答づくり中で、それが終って時間ができたら、私も作ってみたいと思っています。 その後、「おまかせスケジュール表印刷」として開発し掲載しました。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |