No.3ベストアンサー
- 回答日時:
簡単ではありますが、ソースを紹介します。
Dim startDate As String
Dim endDate As String
Dim iLoop As Integer
startDate = Sheet1.TextBox1.Text
endDate = Sheet1.TextBox2.Text
For iLoop = 0 To DateDiff("m", CDate(startDate), CDate(endDate)) - 1
MsgBox DateAdd("d", -1, DateAdd("m", iLoop + 1, CDate(startDate)))
Next
Sheet1.TextBox1.Textのテキストボックスに開始月が
「03年11月」という形式で入力されています。
Sheet1.TextBox2.Textのテキストボックスに終了月が
「04年4月」という形式で入力されています。
このような場合、メッセージボックスでの表示となりますが、
「2003/11/30」
「2003/12/31」
「2004/01/31」
「2004/02/29」
「2004/03/31」
と3月分まで表示されます。
有難うございました。
まさに私の求めていたコードです。
> For iLoop = 0・・・
ゼロから初めて良いんですね~
イマイチ意味が分かりません
No.5
- 回答日時:
#3です。
「For iLoop = 0・・・」の部分ですけど、ただの私の癖です。
For iLoop = 0 To DateDiff("m", CDate(startDate), CDate(endDate)) - 1
MsgBox DateAdd("d", -1, DateAdd("m", iLoop + 1, CDate(startDate)))
Next
と書いてある自分のコードを見ますと、
For iLoop = 1 To DateDiff("m", CDate(startDate), CDate(endDate))
MsgBox DateAdd("d", -1, DateAdd("m", iLoop, CDate(startDate)))
Next
と書いた方がわかりやすいかもしれませんね。
結局、ループする回数なので、
0から始めようが1から始めようが
終わりの部分(For iLoop = 1 TO ***)と
~~~~
ループの対象となる
DateAdd("d", -1, DateAdd("m", iLoop, CDate(startDate)))
~~~~~~~
の部分を合わせれば問題ないと思います。
ここら変は、開発者の癖なんかがもろに出ちゃうような気もします。
有難うございました。
普段For文で1から初めているもので、何か意味が有るものかと思ったものですから・・・
配列も0から始まるようですし、0から始める癖をつけましょうかね~
#3は大変参考になりました。DateDiff関数のこういった使い方は 目から鱗です。
他の方も参考になったんじゃないですか。
No.4
- 回答日時:
A列に日付を入れるとして
その月末日をB列に出す場合
Sub test01()
For i = 1 To 10
Cells(i, 2) = DateSerial(Year(Cells(i, 1)), Month(Cells(i, 1)) + 1, 1) - 1
Next i
End Sub
(テスト実行データ)
2003/12/162003/12/31
2004/1/17 2004/1/31
2004/2/18 2004/2/29
2004/3/19 2004/3/31
2004/4/20 2004/4/30
2004/5/21 2004/5/31
2004/6/22 2004/6/30
2004/7/23 2004/7/31
2004/9/24 2004/9/30
2004/10/252004/10/31
次月の1日の日付シリアル値を求めその前日が、月末日です(常套手段)。
No.2
- 回答日時:
もし、月末日ではなく「その月の最終営業日」とかなら、それなりに複雑な処理になりますから、VBAも役不足にならないとは思いますが・・・単なる月末日なんですよね?
質問文だけではプログラムの全貌が見えませんので、とりあえず基本方針だけを。
年をまたぐ場合、For文では無理なので、Do~Loop文を使い、処理が期間の最終月になったら、Exit Doでループを抜けるという方法がより適していると思います。ループの最後で月を+1しておき、もし月が13になった場合は、月を1にして年を+1する、というふうにしておけば、年をまたいだ処理が可能です。
DateAddは「翌月の同日」などを求めるのには向いていますが、月末日を求めるのには使えません。月末日の出し方は、#1の方が書かれているように、DateSerial関数に「求めたい年」と「求めたい月+1」、そして日のところに「0」を入れることで求められます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 格安スマホ・SIMフリースマホ IIJmio 速度遅く解約する場合 3000円くらいかかる? 3 2022/09/01 20:19
- 不動産業・賃貸業 賃貸の解約について質問です。 不動産会社の言うことが分からず質問させていただきました。 新築のマンシ 1 2022/08/06 19:35
- 財務・会計・経理 もう一度減価償却について質問です。 (pc11月31日に、利用開始して1月末決算) 決算終了後の減価 2 2023/04/12 15:08
- その他(住宅・住まい) 賃貸の解約について質問です。 不動産会社の言うことが分からず質問させていただきました。 新築のマンシ 6 2022/08/06 19:42
- その他(ビジネススキル・経営ノウハウ) 年末の場合の請求書発行日について 1 2022/12/12 18:39
- 就職・退職 有給休暇日数について教えてください…! 4月1日に入社し、次の年の4月14日付で退職したのですが有給 6 2023/08/26 04:36
- 派遣社員・契約社員 1週間前に契約期間の変更と言われ… 4 2022/03/26 18:32
- 求人情報・採用情報 日雇い派遣って禁止されてますが実際はもっと酷いですよね? 2 2023/01/05 00:53
- その他(就職・転職・働き方) 入社開始日について教えてください。 短期留学のため、入社開始日が1か月半ほど先になります。 入社開始 2 2023/08/11 09:53
- 退職・失業・リストラ 給与等の条件変更について。 育児休業明け今月4月から現場復帰(正社員)しております。 2月末に4月以 1 2023/04/06 20:58
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
VBA 前月の月の名前でブックを保存
その他(Microsoft Office)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
VBAで先月、先々月を求める方法
Visual Basic(VBA)
-
-
4
VBAのオートフィルターで該当行がない場合に処理を止めたい
Excel(エクセル)
-
5
ピボットテーブルの日付フィルタ(VBA)
Excel(エクセル)
-
6
python エラー
その他(プログラミング・Web制作)
-
7
VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます
Visual Basic(VBA)
-
8
B列の最終行までA列をオートフィル
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フラッシュ暗算
-
UWSCにてある一定の動作を無限...
-
do-while文が禁止される理由
-
C言語 数字を削除する関数
-
入力した数値を倍々するプログラム
-
入力した文字列から母音だけを...
-
Excel VBAで年度をまたぐ期間の...
-
for文while文の無限ループの違...
-
C言語のプログラムみてください...
-
プログラミングC#初心者
-
猫でもわかる、がわかりません。
-
プログラムで関数は使わない方...
-
「指定されたキャストは有効で...
-
信頼区間の1.96や1.65ってどこ...
-
プログラムでの数字につく”f”の...
-
Enterキーを押されたら次の処理...
-
C言語での引数の省略方法
-
マイナスからプラスへ転じた時...
-
intとlongは同じ?
-
20'(角度)の計算がわかりま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループを途中で抜けたいのですが。
-
入力した文字列から母音だけを...
-
do-while文が禁止される理由
-
break文でループを一気に抜ける...
-
Excel VBAで年度をまたぐ期間の...
-
エクセルVBAで Do While (1)って?
-
入力した数値を倍々するプログラム
-
For文の終了値を関数にしても問...
-
UWSCにてある一定の動作を無限...
-
C言語forループが完結した場合...
-
n重のfor文にするには?
-
for文while文の無限ループの違...
-
Delphiで・・・
-
Cプログラムが終了しない
-
strstr()関数の実装内容について。
-
PAD図の書き方
-
__asm int 3でのブレイクポイン...
-
PIC のプログラムについて ど...
-
放電現象の2分法C言語プログラ...
-
線形探索(番兵法)のプログラ...
おすすめ情報