KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で指定した月のすべての日付を一覧表示するには?

著者Siluvia変更日

Excel で日付ベースのデータを扱う際、特定の月のすべての日付を一覧表示する必要が頻繁にあります(たとえば、計画立案、スケジューリング、レポート作成、進捗管理など)。Excel の「系列の作成」機能はこうしたタスクに便利ですが、月の最終日を超えてリストが延長されてしまう可能性があるため、特に日数が異なる月では注意が必要です。どの月でも正確な日数にぴったり一致する自動リストを作成したい場合、この記事ではExcel スキルレベルや使用シーンに応じた実用的な解決策をいくつかご紹介します。

数式を使用して指定月のすべての日付を一覧表示する

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

Excel の組み込み機能 – 「系列の作成」機能


数式を使用して指定月のすべての日付を一覧表示する

数式は、単一の月に含まれるすべての日付を一覧表示したいユーザー向けの柔軟でセルベースのソリューションです。この方法を使えば、日数を手動で数えることなく、日付を自動的に生成・入力できます。複数の月に対応したシートを繰り返し作成するようなシンプルかつ反復的なタスクに最適です。以下の手順に従ってください。

1.対象月の初日を空のセルに入力します。たとえば、セルA22016/7/1と入力してください。年や月は自由に設定できます。

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

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

指定された月の最初の日付の下に数式が入力されているスクリーンショット

この数式は日付をインクリメントすべきかをチェックし、開始月以外の日付になった時点でセルを空白にします。月の終わりを超えてドラッグしても、不要な日付が表示されることはありません。

3.結果セルが日付形式で正しく表示されるように設定しましょう。数式を入力したセルを選択し、ホーム > 数値の書式ドロップダウン > 短い日付形式をクリックしてください。この手順は非常に重要です!セルが「標準」または「数値」形式のままだと、実際の日付ではなくシリアル値が表示されてしまう可能性があります。

Excelでセルを設定して日付を表示する手順を示すスクリーンショット

4.数式セルを選択したまま、フィルハンドル(セルの右下隅にある小さな四角)を下方向にドラッグしてください。月の想定日数を超えて(例:7 月なら少なくとも31 行まで)安全にドラッグ可能で、どれだけ遠くまで伸ばしても、指定月に属するセルにのみ日付が入力され、翌月へのオーバーフローを確実に防ぎます。

オートフィルハンドルを使用してExcelに指定された月のすべての日付が一覧表示されているスクリーンショット


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.実行ボタン実行ボタン(または)F5キー)を押して、プロンプトに従って年、月、日付を入力する開始セルを指定してください。

注意点とヒント:

  • 月を入力する際は、数字をご使用ください(例:1 月は「1」、2 月は「2」、以下同様)。
  • 生成されるすべての日付は「yyyy/m/d」形式で表示されます。必要に応じて、NumberFormat 行の日付形式を編集してください。
  • 入力を間違えたり、リストを再作成したい場合は、マクロをもう一度実行するだけで OK です。
  • この方法は、定期的に日付リストを作成したり、繰り返しのレポート作業を自動化したりするのに最適です。

Excel の組み込み機能 – 「系列の作成」機能

月のすべての日付を一覧表示するもう一つの簡単なExcel の組み込み方法は、系列の作成機能を使うことです。この方法は、数式や VBA に不慣れなユーザーに特に便利です。ステップ値(1 日)を明示的に設定し、停止値を対象月の最終日に指定すれば、どの月でも正確な日付リストを簡単に作成できます。

  1. 対象月の初日を空のセル(例:A2)に入力してください(2023 年4 月1 日の場合は2023/4/1と入力)。Excel が正しく日付として認識していることをご確認ください。不安な場合は、セルに=DATE(2023,4,1)と入力して、明確に日付を指定することもできます。
  2. 開始セル(A2)を選択します。次に、ホーム > フィル > 系列。。。をクリックして、「系列」ダイアログボックスを開きます。
  3. 「系列」ダイアログボックスで:
    • 日付を列方向に一覧表示する場合は、を選択してください。横方向に一覧表示する場合は、を選択してください。
    • 種類日付に設定します。
    • 日付単位に設定します。
    • ステップ値1(1 日ずつ増加)に設定します。
    • 停止値には、対象月の最終日を入力してください。たとえば2023 年4 月の場合は、2023/4/30と入力します。
  4. OKをクリックすると、Excel が選択したセル範囲に指定月の初日から最終日までのすべての日付を自動的に入力します。

メリットと注意点

  • この方法なら、数式を覚える必要もなければ、編集する必要もありません。
  • 各月の開始日と終了日を手動で入力する必要があります。
  • 終了値を誤って入力すると、リストが不完全になったり、不要な日付が含まれてしまったりします。特に2 月やうるう年は、終了日をよくご確認ください。
  • 系列を入力した後は、必要に応じてホーム > 数値の書式からすべてのセルを日付形式に設定できます。

上記の各解決策には独自のメリットがあります。数式は動的で、他の月にも簡単にコピーできます。VBA は大規模な用途に最適で、ワンクリックで自動化が可能です。「系列の作成」は時折発生するタスクに視覚的かつ迅速に対応できます。問題が発生した場合は、入力された日付がExcel で認識可能な形式かどうかを確認してください。VBA を使用する際は、マクロが有効になっており、かつ有効なセル範囲が選択されていることもご確認ください。週末・祝日・特定の営業日を考慮したより複雑なスケジューリングが必要な場合は、追加の数式ロジックや VBA のカスタマイズが必要となる場合があります。

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 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 でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得