hayatedonda
@hayatedonda

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

1ヶ月分の日にちを出したいです!

解決したいこと

VBAでマクロを組んでいます。1ヶ月の日付を表示したいのですが教えて下さい!

入力シートに年と月を入力して、
出力シートにその日付を1日から30日や31日まで横に出したいです。

入力シート名はコントロール画面
出力シート名はクレジットテンプレートorデビットテンプレートorギフトテンプレート

入力シートのC4に年を入れる。
入力シートのC5に月を入れる。
入力シートのC6に対象となるものを選択する。(クレジット、デビット、ギフト)

ボタンを押すと、クレジット、デビット、ギフトの選択されたシートにC1から横に日付が出るようにしたいです。

自分で試したこと

y = 2009
m = 2
For d = 1 To 31
Cells(d, 1) = Format(DateSerial(y, m, d), "yyyy年m月d日")
If Month(Cells(d, 1)) <> m Then
Cells(d, 1) = ""
End If
Next d

0

2Answer

出来てるように見えますが何を知りたいんですか?
また、ソースコードはコードブロックに書いてください。

VBA
Sub test()
    '入力シートのC4に年を入れる。
    y = Range("C4")
    '入力シートのC5に月を入れる。
    m = Range("C5")
    '末日を取得
    lastDay = Format(DateSerial(y, m + 1, 0), "d")
    '入力シートのC6に対象となるものを選択する。 (クレジット、デビット、ギフト)
    t = Range("C6")
    
    With Sheets(t + "テンプレート")
        .Range("A1:AE1").ClearContents
        For d = 1 To lastDay
            .Cells(1, d) = y & "年" & m & "月" & d & "日"
        Next d
    End With
End Sub
0Like

Comments

  1. @hayatedonda

    Questioner

    ソースコードの件承知致しました。

    With Sheets(t + "テンプレート")
    の方でエラーが起き、インデックスが有効範囲にありません。(エラー番号:9)と出てしまいました。
    3つのうち(クレジット、デビット、ギフト)の1つを選択されたのを指定したかったのですが、どうしたら良いのでしょうか
  2. Sheets("シート名") はシート名がきちんと存在していれば問題ないはずです。
    新しくシートを追加したい場合は別途記載が必要です

    Worksheets.Add
    ActiveSheet.Name = "クレジットシート"

すみません。
後ほどソースコードを送ります。
写真だけ先に送りたいと思います。
A7B28B46-7DF5-4A4A-9DD5-9DC3AE4BE247.jpeg
DF958B71-7010-4978-91E7-3A7E670E51DF.jpeg
5DF657E7-B16E-4F27-BF7B-7FEAF09FBCEE.jpeg

コードはこのようになっております。

0Like

Your answer might help someone💌