No.3ベストアンサー
- 回答日時:
No.2です。
こんな感じでしょうか?
Sub megu_3()
Dim r1 As Range, r2 As Range
Dim i As Integer, v As Variant
Dim vv As Variant, d As Date
v = Application.InputBox("年/月とその後にカンマ区切りで期間(最大:12)を半角数字で入力してください。" _
& vbCrLf & "例: 2020/1,6", Type:=2)
If v = False Then MsgBox ("キャンセルされましたので終了します"): Exit Sub
vv = Split(v, ",")
If IsDate(vv(0) & "/1") = False Then MsgBox ("日付に変換出来ない値なので終了します"): Exit Sub
d = CDate(vv(0) & "/1")
Set r2 = Worksheets("Sheet2").Range("A1")
With Worksheets("Sheet1")
Set r1 = .Range("B1", .Cells(Rows.Count, "B").End(xlUp))
End With
For i = 0 To Val(vv(1)) - 1
r1.Copy r2.Range("B1")
r2.Resize(r1.Rows.Count).Value = Format(DateAdd("m", i, d), "yyyymm")
Set r2 = r2.Offset(r1.Rows.Count)
Next
Set r1 = Nothing
Set r2 = Nothing
End Sub
何度も有難うございます。
私が必要としていたレベル以上のものを教えて頂きました。
本当に有難うございました。
メッセージボックスを作成し、継続する月数迄入力するなんて。
目から鱗。
本当に色々と勉強をさせて頂きました。
これで今日は安心して眠れます。
有難うございました。
No.2
- 回答日時:
No.1です。
改良はしてみました。
余計なものもあるかもですが、参考になれば幸いです。
Sub megu_2()
Dim r1 As Range, r2 As Range
Dim i As Integer, v As Variant, d As Date
v = Application.InputBox("年/月を半角文字で入力してください" & vbCrLf & "例: 2020/1", Type:=2)
If v = False Then MsgBox ("キャンセルされましたので終了します"): Exit Sub
If IsDate(v & "/1") = False Then MsgBox ("日付に変換出来ない値なので終了します"): Exit Sub
d = CDate(v & "/1")
Set r2 = Worksheets("Sheet2").Range("A1")
With Worksheets("Sheet1")
Set r1 = .Range("B1", .Cells(Rows.Count, "B").End(xlUp))
End With
For i = 0 To 5
r1.Copy r2.Range("B1")
r2.Resize(r1.Rows.Count).Value = Format(DateAdd("m", i, d), "yyyymm")
Set r2 = r2.Offset(r1.Rows.Count)
Next
Set r1 = Nothing
Set r2 = Nothing
End Sub
ところでスタートする年月は変動させるとしても期間は開始年月含めて6ヶ月固定で宜しいのでしょうか?
めぐみんさん
またまたご回答頂き有難うございます。
今回もまたまた感謝です。
ご指摘の通り期間は最終的には12か月を考えております。
従いましてスタートが2020/8だと最終は2021/7となれば最高です。(12カ月間)
No.1
- 回答日時:
ちょっと手抜きっぽい感じはしますが。
。。Sub megu()
Dim r1 As Range, r2 As Range
Dim i As Integer
Set r2 = Worksheets("Sheet2").Range("A1")
With Worksheets("Sheet1")
Set r1 = .Range("B1", .Cells(Rows.Count, "B").End(xlUp))
End With
For i = 1 To 6
r1.Copy r2.Range("B1")
r2.Resize(r1.Rows.Count).Value = "202" & Format(i, "000")
Set r2 = r2.Offset(r1.Rows.Count)
Next
Set r1 = Nothing
Set r2 = Nothing
End Sub
めぐみんさん
感激!!
早速のご回答有難うございます。
これこそがやりたかったことです。
散々悩んだ事がいとも簡単に。
有難うございました。
これで前に進めます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
東芝のDynabookなのですがアン...
-
特殊記号が勝手にエスケープさ...
-
isnan・isnf関数が「識別子が見...
-
CPUの考え方を教えてください ...
-
TreeViewに重複する値をセット
-
xpath でn番目のテキストノード...
-
エクセルVBAのFunctionプロシー...
-
JavaプログラマとしてのXML
-
C#でTreeViewのCheckBoxのサイ...
-
XSLTを使用したXML->XML変換で...
-
4バイトを10進数に変換する方法
-
属性リスト宣言
-
ルート要素ノードが2個ある場合?
-
xmlstarletで他ファイルからエ...
-
ToolStripMenuItemの選択(VB)
-
VBSでxmlの値を書き換えたい
-
DLL共用セクションの質問です
-
【C# LINQ】 MAX値と一緒に・・・
-
4色定理はなぜグラフ理論で証...
-
C:経路検索アルゴリズム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
東芝のDynabookなのですがアン...
-
特殊記号が勝手にエスケープさ...
-
Visual Basic .NET の識別子は...
-
あせんうぶり言語
-
isnan・isnf関数が「識別子が見...
-
MSXMLで使用可能な文字コードの...
-
使用できる文字の規約
-
VB 6.0でtimerをとselect case...
-
IUnknown_QueryService ?
-
システム識別子省略すると?
-
CPUの考え方を教えてください ...
-
XMLで要素が記述された順番に意...
-
SNMP リンクダウンとノードダ...
-
XML、XSLTの適応エラー(IEから...
-
ルート要素ノードが2個ある場合?
-
昔Winnyってありましたけど、あ...
-
バッチファイルでテキストファ...
-
C#でTreeViewのCheckBoxのサイ...
-
同じタグ名の項目取得
-
4バイトを10進数に変換する方法
おすすめ情報
先ほど素晴らしい回答を頂きました。有難うございました。
もう1つ教えて頂きたいのですが。
202001は2020年01月の事ですが、開始が202001(2020年01月)以外でも
(例えば202504(2025年04月)であっても)対応できるようにできますでしょうか?
どうぞ宜しくお願い致します。