Excel で指定した月のすべての日付を一覧表示するには?
Excel で日付ベースのデータを扱う際、特定の月のすべての日付を一覧表示する必要が頻繁にあります(たとえば、計画立案、スケジューリング、レポート作成、進捗管理など)。Excel の「系列の作成」機能はこうしたタスクに便利ですが、月の最終日を超えてリストが延長されてしまう可能性があるため、特に日数が異なる月では注意が必要です。どの月でも正確な日数にぴったり一致する自動リストを作成したい場合、この記事ではExcel スキルレベルや使用シーンに応じた実用的な解決策をいくつかご紹介します。
数式を使用して指定月のすべての日付を一覧表示する
数式は、単一の月に含まれるすべての日付を一覧表示したいユーザー向けの柔軟でセルベースのソリューションです。この方法を使えば、日数を手動で数えることなく、日付を自動的に生成・入力できます。複数の月に対応したシートを繰り返し作成するようなシンプルかつ反復的なタスクに最適です。以下の手順に従ってください。
1.対象月の初日を空のセルに入力します。たとえば、セルA2に2016/7/1と入力してください。年や月は自由に設定できます。
2.開始日の直下のセル(ここではセル)A3)をクリックし、次の数式を入力してEnterキーを押します:
=IF(A2=「」,"",IF(MONTH(A2+1)<>MONTH(A2),"",A2+1))

この数式は日付をインクリメントすべきかをチェックし、開始月以外の日付になった時点でセルを空白にします。月の終わりを超えてドラッグしても、不要な日付が表示されることはありません。
3.結果セルが日付形式で正しく表示されるように設定しましょう。数式を入力したセルを選択し、ホーム > 数値の書式ドロップダウン > 短い日付形式をクリックしてください。この手順は非常に重要です!セルが「標準」または「数値」形式のままだと、実際の日付ではなくシリアル値が表示されてしまう可能性があります。

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

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 日)を明示的に設定し、停止値を対象月の最終日に指定すれば、どの月でも正確な日付リストを簡単に作成できます。
- 対象月の初日を空のセル(例:A2)に入力してください(2023 年4 月1 日の場合は2023/4/1と入力)。Excel が正しく日付として認識していることをご確認ください。不安な場合は、セルに=DATE(2023,4,1)と入力して、明確に日付を指定することもできます。
- 開始セル(A2)を選択します。次に、ホーム > フィル > 系列。。。をクリックして、「系列」ダイアログボックスを開きます。
- 「系列」ダイアログボックスで:
- 日付を列方向に一覧表示する場合は、列を選択してください。横方向に一覧表示する場合は、行を選択してください。
- 種類を日付に設定します。
- 日付単位を日に設定します。
- ステップ値を1(1 日ずつ増加)に設定します。
- 停止値には、対象月の最終日を入力してください。たとえば2023 年4 月の場合は、2023/4/30と入力します。
- OKをクリックすると、Excel が選択したセル範囲に指定月の初日から最終日までのすべての日付を自動的に入力します。
メリットと注意点:
- この方法なら、数式を覚える必要もなければ、編集する必要もありません。
- 各月の開始日と終了日を手動で入力する必要があります。
- 終了値を誤って入力すると、リストが不完全になったり、不要な日付が含まれてしまったりします。特に2 月やうるう年は、終了日をよくご確認ください。
- 系列を入力した後は、必要に応じてホーム > 数値の書式からすべてのセルを日付形式に設定できます。
上記の各解決策には独自のメリットがあります。数式は動的で、他の月にも簡単にコピーできます。VBA は大規模な用途に最適で、ワンクリックで自動化が可能です。「系列の作成」は時折発生するタスクに視覚的かつ迅速に対応できます。問題が発生した場合は、入力された日付がExcel で認識可能な形式かどうかを確認してください。VBA を使用する際は、マクロが有効になっており、かつ有効なセル範囲が選択されていることもご確認ください。週末・祝日・特定の営業日を考慮したより複雑なスケジューリングが必要な場合は、追加の数式ロジックや VBA のカスタマイズが必要となる場合があります。
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
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 アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得