今日の日付と●曜日を新しく列を追加して必要な分だけいれるよ
この説明は、ChatGPTで作成しています。
このプロシージャは、現在開いているExcelのシート(アクティブシート)に、新しい列を2つ追加し、その中に「今日の日付」と「●曜日」を入力する作業を自動化します。以下で仕組みをわかりやすく説明します。
具体的な処理内容
画面更新の停止
プログラムを動かす間に画面がちらつかないように設定しています。この処理は、最後に元に戻されます。すでに「今日の日付」列があるかチェック
一番左の列(A列)に「今日の日付」という文字がある場合は、新しい列を追加せず、メッセージを表示して終了します。列の追加
A列に新しい列を2つ追加します。
1行目に、それぞれ「今日の日付」「曜日」というタイトルを設定します。
C列の最終行を確認
データがどこまで入力されているかを調べ、必要な行数だけ「今日の日付」と「曜日」を埋める準備をします。データが1行以下の場合は終了
C列にデータがほとんどない場合(タイトルだけの場合など)は、メッセージを表示して終了します。日付と曜日の入力
2行目から最終行まで、以下のデータを順に入力します。「今日の日付」列には、今日の日付を入力します。
「曜日」列には、その日の曜日を日本語で入力します。
画面更新を再開
最後に、画面更新を元に戻してプログラムを終了します。
コードを実際に使う場面の例
データを毎日入力するシートを使っている場合に、手作業で日付や曜日を追加する手間を省きたいとき。
曜日によって処理を分ける必要があるデータ分析や報告書作成時。
注意点
このコードは「C列」にデータがあることを前提としています。C列が空の場合はメッセージが出て終了します。
日付や曜日を新しく入力するので、元の列データがずれる可能性があります。事前に確認してください。
関連リンク
Sub 今日の日付と●曜日を新しく列を追加して必要な分だけいれるよ()
Application.ScreenUpdating = False
Dim ws As Worksheet
Set ws = ActiveSheet
' すでに今日の日付という列がA列にあったら実行を終了する
If ws.Cells(1, 1) = "今日の日付" Then
MsgBox "今日の日付の列が既にあります"
Exit Sub
End If
' A列に新しい列を挿入する
ws.Columns("A").Insert
ws.Cells(1, 1) = "曜日"
ws.Columns("A").Insert
ws.Cells(1, 1) = "今日の日付"
' B列の最終行を取得
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.count, 3).End(xlUp).Row
' B列に値が1つ以下しかない場合は実行を終了する
If lastRow <= 1 Then
MsgBox "C列に値がありません"
Exit Sub
End If
' 今日の日付を必要な行数分だけ入力する
Dim i As Long
For i = 2 To lastRow
Cells(i, 1) = Date
Cells(i, 2) = Format(Date, "aaaa")
Next i
Application.ScreenUpdating = True
End Sub
関連キーワード
#excel #できること #vba #曜日 #自動化 #列の追加 #日付入力 #データ入力 #カレンダー #効率化 #アクティブシート #セル操作 #メッセージボックス #データチェック #列の挿入 #行数取得 #スクリーン更新 #プログラミング初心者 #エラー防止 #Excel活用
English Translation
Procedure Name: Add today's date and day of the week as new columns as needed
This explanation is created with ChatGPT.
This procedure automates the task of adding two new columns to the currently active Excel sheet. The columns will contain "today's date" and the corresponding "day of the week." Below is a step-by-step explanation of how it works.
Specific Steps
Disabling Screen Updates
The procedure prevents screen flickering during execution. This setting is restored at the end.Checking for an Existing "Today's Date" Column
If the first column (Column A) already contains the header "Today's Date," the program stops and displays a message.Adding Columns
Two new columns are inserted at the leftmost position (Column A).
The headers "Today's Date" and "Day of the Week" are added to the first row.
Identifying the Last Row in Column C
The program determines how far the data in Column C extends to decide how many rows need updates.Exiting if Data is Insufficient
If Column C contains only one row (typically just the header), the program stops and displays a message.Entering Dates and Days
From the second row to the last, the following values are entered:"Today's Date" column receives today's date.
"Day of the Week" column receives the day of the week in Japanese.
Re-enabling Screen Updates
Finally, the program restores screen updates and ends.
Use Cases
Useful when working with sheets that require daily updates of dates and days of the week.
Helps streamline tasks like data analysis or report preparation that involve time-based categorization.
Points to Note
The code assumes that Column C contains data. If Column C is empty, the program will stop with a message.
Adding new columns shifts existing data. Review your sheet layout before running the procedure.
Related Links
Related Keywords
#excel #whatyoucando #vba #dayoftheweek #automation #columnaddition #dateentry #datainput #calendar #efficiency #activesheet #celloperations #messagebox #datacheck #columninsertion #rowcounting #screenupdates #beginnerprogramming #errorprevention #excelutility