Excel VBAで日付を1週間ずつ自動入力!ボタンで翌週の日付を追加する方法

エクセル

あなたはエクセルで毎週の報告書・週次予定表・業務管理表などの日付更新を手入力するのが面倒だと思ったことはありませんか?

VBAを使えば、こんな感じの表の右側に日付を更新していくのを、ボタン1つでできるようになります。

今回は「Excel VBAで日付を1週間ずつ自動入力!ボタンで翌週の日付を追加する方法」を紹介します。

Excel VBAで日付を1週間ずつ自動入力!ボタンで翌週の日付を追加する方法

Excel VBAで日付を1週間ずつ自動入力!ボタンで翌週の日付を追加する方法です。

マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

3.コード入力画面が開く

4.コードを入力

コードを入力します。

B2セルの最終行に日付を更新して入力する、という内容です。

5.ボタンができた →ボタンを押す

ボタンができました。

早速ボタンを押します!

6.テキストボックスが貼付けできた

C2セルに日付が入力されました。

ボタンを押すと、右側にどんどん更新日が入力されていきます。

これなら日付の入力もラクですね

まとめ

このVBAを使えば、日付更新がボタン1つでできるので、とても便利です。

最後に今回使ったコードです。

    Dim ws As Worksheet
    Dim startDate As Date
    Dim endDate As Date
    Dim lastCol As Long
    Dim currentText As String
    Dim dates As Variant

    Set ws = ActiveSheet

    ' B2セルから右方向の最終入力列を取得
    lastCol = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column

    ' B2が空欄の場合
    If lastCol < 2 Or ws.Range("B2").Value = "" Then
        MsgBox "B2セルに開始日付を入力してください。"
        Exit Sub
    End If

    ' 最終列の日付範囲を取得
    currentText = ws.Cells(2, lastCol).Value

    ' 「10/4~10/10」の形式から日付を取得
    dates = Split(currentText, "~")

    If UBound(dates) <> 1 Then
        MsgBox "日付は「10/4~10/10」の形式で入力してください。"
        Exit Sub
    End If

    startDate = DateValue(Trim(dates(1))) + 1
    endDate = startDate + 6

    ' 右隣のセルに翌週の日付を入力
    ws.Cells(2, lastCol + 1).Value = _
        Format(startDate, "m/d") & "~" & Format(endDate, "m/d")

    ' 書式を設定
    ws.Cells(2, lastCol + 1).HorizontalAlignment = xlCenter

コメント

タイトルとURLをコピーしました