メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで指定された月のすべての日を日付としてリストするにはどうすればよいですか?

Author Siluvia Last modified

Excelで日付ベースのデータを扱う場合、特定の月のすべての日をリスト化することはよくあるニーズです。たとえば、計画、スケジュール、レポート作成、または追跡目的などです。Excelのフィル シリーズ機能はこのタスクに一般的に使用されますが、月末を超えてリストが延びないようにするのは特に日数が異なる月の場合、難しいことがあります。指定された月の正確な日数に一致する正確で自動的なリストを作成する方法が必要な場合、この記事ではさまざまなExcelスキルレベルやシナリオに対応したいくつかの実用的な解決策を提供します。

指定された月のすべての日を数式でリスト化する

VBAコード - 月のすべての日付を自動生成

Excelの組み込み方法 - フィル シリーズ機能


指定された月のすべての日を数式でリスト化する

数式は、特定の月内のすべての日付をリストしたい人にとって柔軟でセルベースの解決策です。この方法を使うと、日付を手動で数えることなく自動的に生成して入力できます。これは、異なる月の複数のシートを準備するような単純で繰り返し可能なタスクに最適です。次の手順に従ってください:

1. 目的の月の最初の日を空白のセルに入力します。例えば、2016/7/1 をセル A2 に入力します。必要に応じて対象の月と年を使用してください。

2. 開始日の直下のセル(ここではセル A3)をクリックします。この数式を入力して Enter キーを押します:

=IF(A2="","",IF(MONTH(A2+1)<>MONTH(A2),"",A2+1))

A screenshot showing the formula entered below the first date of the specified month

この数式は、日付を増やすかどうかを確認し、元の月から日付が移動するとセルは空白になります。月の終わりを超えてドラッグしても、余分な日付は表示されません。

3. 次に、結果のセルが日付形式で表示されていることを確認します。数式を入力したセルを見つけ、ホーム > 数値の書式 > 短い日付 に移動します。このステップは重要です。セルが「標準」または「数値」形式の場合、シリアル番号のみが表示される可能性があります。

A screenshot showing the process to format a cell to display dates in Excel

4. 数式のセルが選択されたままの状態で、フィル ハンドル(セルの右下隅にある小さな四角)を下にドラッグします。予想される月の日数以上にドラッグします。たとえば、7月の場合、少なくとも31行まで安全にドラッグできます。どこまでドラッグしても、指定された月に属するセルにのみ日付が入力され、翌月へのオーバーフローは防がれます。

A screenshot showing all dates in a specified month listed in Excel using Fill Handle


VBAコード - 指定された月のすべての日付を自動生成

繰り返し手作業で数式を入力したくないユーザー、特に何度も日付リストを生成したり、複数のシートにわたる場合、簡単なVBAマクロを使ってこのプロセスを自動化することができます。このアプローチは、数回のクリックでカスタマイズ可能な日付シリーズを生成したい場合に特に便利です。VBAを使えば、対象の月と年を指定するだけで、関連するすべての日付を迅速に生成できます。

1. 開発ツール > Visual Basic をクリックして、Microsoft Visual Basic for Applicationsエディターを開きます。VBAエディターで挿入 > モジュール をクリックし、新しく作成されたモジュールに次のコードを貼り付けます:

Sub ListAllDatesOfMonth()
    Dim y As Integer
    Dim m As Integer
    Dim startDate As Date
    Dim endDate As Date
    Dim i As Integer
    Dim xTitleId As String
    Dim destCell As Range
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    y = Application.InputBox(prompt:="Please enter the year (e.g.2023)", Title:=xTitleId, Type:=1)
    If y = 0 Then Exit Sub
    
    m = Application.InputBox(prompt:="Please enter the month number (1-12)", Title:=xTitleId, Type:=1)
    If m = 0 Then Exit Sub
    
    Set destCell = Application.InputBox(prompt:="Select the starting cell for your dates", Title:=xTitleId, Type:=8)
    If destCell Is Nothing Then Exit Sub
    
    startDate = DateSerial(y, m, 1)
    endDate = DateSerial(y, m + 1, 0)
    
    For i = 0 To endDate - startDate
        destCell.Offset(i, 0).Value = startDate + i
    Next i
    
    destCell.Resize(endDate - startDate + 1, 1).NumberFormat = "yyyy/m/d"
End Sub

2をクリックします。 Run button 実行 ボタン(または F5キーを押す)、そして表示されるプロンプトに従って、年、月、および日付の開始位置となるセルを選択します。

注意点とヒント:

  • 月の入力では、数字を入力します。1月は1、2月は2などです。
  • 生成されたすべての日付は「yyyy/m/d」形式でフォーマットされます。必要であれば、NumberFormat行で日付形式を編集できます。
  • 入力ミスをした場合やリストをやり直したい場合は、マクロを再実行するだけです。
  • この解決策は、定期的に日付リストを作成したり、繰り返しのレポートを自動化する場合に最適です。

Excelの組み込み方法 - フィル シリーズ機能

指定された月のすべての日をリストするためのもう一つのシンプルなExcelの組み込み方法は、フィル シリーズ機能を使用することです。このアプローチは特に、数式やVBAに不慣れなユーザーにとって役立ちます。ステップ値(1日)を明確に定義し、終了値を対象の月の最終日として指定することで、どの月でも正確な日付リストを作成できます。

  1. 特定の月の最初の日付を空のセルに入力します(例:2023年4月1日の場合、セル A22023/4/1 と入力)。入力を日付としてExcelが認識しているか確認します。不明な場合は、明確にするために =DATE(2023,4,1) を使用できます。
  2. 開始セル(A2)を選択します。次に、ホーム > フィル > シリーズ... をクリックして、シリーズダイアログボックスを開きます。
  3. シリーズダイアログボックスで:
    • 日付をにリストしたい場合は「列」を、水平方向にリストしたい場合はを選択します。
    • タイプを「日付」に設定します。
    • 日付単位「日」に設定します。
    • ステップ値1に設定します(1日ごとに増加します)。
    • 停止値に、対象の月の最終日を入力します。たとえば、2023年4月の場合、2023/4/30 と入力します。
  4. OK をクリックします。これで、Excelは選択したセル範囲に指定された月の初日から最終日までのすべての日付を入力します。

利点と注意点

  • この方法では、数式を記憶したり編集する必要はありません。
  • 各月に対して開始日と終了日を手動で指定する必要があります。
  • 停止値に誤りがあると、リストが不完全になるか、余分な日が含まれることがあります。終了日をよく確認してください。特に2月や閏年には注意が必要です。
  • シリーズの入力を終えたら、必要に応じてすべてのセルを 日付形式にフォーマットできます(ホーム > 数値の書式)。

上記の各解決策には独自の利点があります:数式は動的で他の月に簡単にコピー可能、VBAは大規模な使用に向けたワンクリック自動化を可能にし、フィル シリーズはたまに使うケースに素早く視覚的に対応します。問題が発生した場合は、入力した日付が認識可能な形式であることを確認し、VBAを使用する際は必ずマクロが有効で正しいセル範囲が選択されていることを確認してください。より複雑なスケジュール(週末、祝日、または特定の平日を含む場合)には、追加の数式ロジックやVBAの調整が必要になる場合があります。

最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得