Excelで月/年のカレンダーを作成するにはどうすればよいですか?
ある時、Excelで特定の月または年のカレンダーを作成する必要がありますが、どうすればそれをすばやく解決できますか? このチュートリアルでは、Excelで月間または年次カレンダーをすばやく作成するための秘訣を紹介します。
パーペチュアルカレンダーで月間または年次カレンダーを簡単に作成
- 何でも再利用: 最もよく使用される、または複雑な数式、グラフなどをお気に入りに追加して、後ですぐに再利用できます。
- 20以上のテキスト機能: テキスト文字列から数値を抽出します。 テキストの一部を抽出または削除します。 数字と通貨を英語の単語に変換します。
- マージツール:複数のワークブックとシートをXNUMXつに。 データを失うことなく複数のセル/行/列をマージします。 重複する行と合計をマージします。
- 分割ツール:値に基づいてデータを複数のシートに分割します。 XNUMXつのワークブックから複数のExcel、PDF、またはCSVファイル。 XNUMX列から複数列。
- 貼り付けスキップ 非表示/フィルタリングされた行; カウントと合計 背景色別; パーソナライズされた電子メールを複数の受信者にまとめて送信します。
- スーパーフィルター: 高度なフィルタースキームを作成し、任意のシートに適用します。 並び替え 週、日、頻度など。 フィルタ 太字、数式、コメント...
- 300 以上の強力な機能。 Office 2007-2021 および 365 で動作します。 すべての言語をサポートします。 企業や組織に簡単に導入できます。
Excelテンプレートで月間または年次カレンダーを作成する
Excelでは、カレンダーテンプレートを使用して、月次または年次カレンダーを作成できます。
1. Excel 2010/2013で、をクリックします フィレット > New、Excel 2007で、をクリックします オフィスボタン > New、次に、ポップウィンドウの右側のセクションに「 カレンダー 検索エンジンに。 スクリーンショットを参照してください:
Excel2010 / 2013の場合
Excel 2007で
2。 押す 入力します、その後、複数の種類のカレンダーがウィンドウに表示されます。 必要なカレンダーの種類をXNUMXつ選択し、[ ダウンロード(または作成) 右ペインにあります。 スクリーンショットを参照してください:
これで、新しいワークブックにカレンダーが作成されます。 スクリーンショットを参照してください:
VBAで月間カレンダーを作成する
2015年XNUMX月など、指定した月のXNUMXか月のカレンダーを作成する必要がある場合があります。上記の方法では、このようなカレンダーテンプレートを見つけるのは難しいかもしれません。 ここでは、特定の月間カレンダーの作成に役立つVBAコードを紹介します。
1。 押す Altキー+ F11 開くキー アプリケーション向け Microsoft Visual Basic ウィンドウ、クリック インセット > モジュール、次に、以下のVBAコードをコピーしてウィンドウに貼り付けます。
VBA:月間カレンダーを作成します。
Sub CalendarMaker()
' Unprotect sheet if had previous calendar to prevent error.
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, _
Scenarios:=False
' Prevent screen flashing while drawing calendar.
Application.ScreenUpdating = False
' Set up error trapping.
On Error GoTo MyErrorTrap
' Clear area a1:g14 including any previous calendar.
Range("a1:g14").Clear
' Use InputBox to get desired month and year and set variable
' MyInput.
MyInput = InputBox("Type in Month and year for Calendar ")
' Allow user to end macro with Cancel in InputBox.
If MyInput = "" Then Exit Sub
' Get the date value of the beginning of inputted month.
StartDay = DateValue(MyInput)
' Check if valid date but not the first of the month
' -- if so, reset StartDay to first day of month.
If Day(StartDay) <> 1 Then
StartDay = DateValue(Month(StartDay) & "/1/" & _
Year(StartDay))
End If
' Prepare cell for Month and Year as fully spelled out.
Range("a1").NumberFormat = "mmmm yyyy"
' Center the Month and Year label across a1:g1 with appropriate
' size, height and bolding.
With Range("a1:g1")
.HorizontalAlignment = xlCenterAcrossSelection
.VerticalAlignment = xlCenter
.Font.Size = 18
.Font.Bold = True
.RowHeight = 35
End With
' Prepare a2:g2 for day of week labels with centering, size,
' height and bolding.
With Range("a2:g2")
.ColumnWidth = 11
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = xlHorizontal
.Font.Size = 12
.Font.Bold = True
.RowHeight = 20
End With
' Put days of week in a2:g2.
Range("a2") = "Sunday"
Range("b2") = "Monday"
Range("c2") = "Tuesday"
Range("d2") = "Wednesday"
Range("e2") = "Thursday"
Range("f2") = "Friday"
Range("g2") = "Saturday"
' Prepare a3:g7 for dates with left/top alignment, size, height
' and bolding.
With Range("a3:g8")
.HorizontalAlignment = xlRight
.VerticalAlignment = xlTop
.Font.Size = 18
.Font.Bold = True
.RowHeight = 21
End With
' Put inputted month and year fully spelling out into "a1".
Range("a1").Value = Application.Text(MyInput, "mmmm yyyy")
' Set variable and get which day of the week the month starts.
DayofWeek = WeekDay(StartDay)
' Set variables to identify the year and month as separate
' variables.
CurYear = Year(StartDay)
CurMonth = Month(StartDay)
' Set variable and calculate the first day of the next month.
FinalDay = DateSerial(CurYear, CurMonth + 1, 1)
' Place a "1" in cell position of the first day of the chosen
' month based on DayofWeek.
Select Case DayofWeek
Case 1
Range("a3").Value = 1
Case 2
Range("b3").Value = 1
Case 3
Range("c3").Value = 1
Case 4
Range("d3").Value = 1
Case 5
Range("e3").Value = 1
Case 6
Range("f3").Value = 1
Case 7
Range("g3").Value = 1
End Select
' Loop through range a3:g8 incrementing each cell after the "1"
' cell.
For Each cell In Range("a3:g8")
RowCell = cell.Row
ColCell = cell.Column
' Do if "1" is in first column.
If cell.Column = 1 And cell.Row = 3 Then
' Do if current cell is not in 1st column.
ElseIf cell.Column <> 1 Then
If cell.Offset(0, -1).Value >= 1 Then
cell.Value = cell.Offset(0, -1).Value + 1
' Stop when the last day of the month has been
' entered.
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
' Exit loop when calendar has correct number of
' days shown.
Exit For
End If
End If
' Do only if current cell is not in Row 3 and is in Column 1.
ElseIf cell.Row > 3 And cell.Column = 1 Then
cell.Value = cell.Offset(-1, 6).Value + 1
' Stop when the last day of the month has been entered.
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
' Exit loop when calendar has correct number of days
' shown.
Exit For
End If
End If
Next
' Create Entry cells, format them centered, wrap text, and border
' around days.
For x = 0 To 5
Range("A4").Offset(x * 2, 0).EntireRow.Insert
With Range("A4:G4").Offset(x * 2, 0)
.RowHeight = 65
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlTop
.WrapText = True
.Font.Size = 10
.Font.Bold = False
' Unlock these cells to be able to enter text later after
' sheet is protected.
.Locked = False
End With
' Put border around the block of dates.
With Range("A3").Offset(x * 2, 0).Resize(2, _
7).Borders(xlLeft)
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Range("A3").Offset(x * 2, 0).Resize(2, _
7).Borders(xlRight)
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
Range("A3").Offset(x * 2, 0).Resize(2, 7).BorderAround _
Weight:=xlThick, ColorIndex:=xlAutomatic
Next
If Range("A13").Value = "" Then Range("A13").Offset(0, 0) _
.Resize(2, 8).EntireRow.Delete
' Turn off gridlines.
ActiveWindow.DisplayGridlines = False
' Protect sheet to prevent overwriting the dates.
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
' Resize window to show all of calendar (may have to be adjusted
' for video configuration).
ActiveWindow.WindowState = xlMaximized
ActiveWindow.ScrollRow = 1
' Allow screen to redraw with calendar showing.
Application.ScreenUpdating = True
' Prevent going to error trap unless error found by exiting Sub
' here.
Exit Sub
' Error causes msgbox to indicate the problem, provides new input box,
' and resumes at the line that caused the error.
MyErrorTrap:
MsgBox "You may not have entered your Month and Year correctly." _
& Chr(13) & "Spell the Month correctly" _
& " (or use 3 letter abbreviation)" _
& Chr(13) & "and 4 digits for the Year"
MyInput = InputBox("Type in Month and year for Calendar")
If MyInput = "" Then Exit Sub
Resume
End Sub
VBAはこのWebから来ています https://support.microsoft.com/en-us/kb/150774
2。 押す F5 キーまたは ラン ボタンをクリックすると、カレンダーを作成するために必要な特定の月を入力するように促すダイアログが表示されます。スクリーンショットを参照してください。
3。 クリック OK。 これで、2015年XNUMX月のカレンダーがアクティブシートに作成されます。
ただし、上記の方法にはいくつかの制限があります。たとえば、XNUMX月からXNUMX月までのカレンダーを一度に作成する場合は、上記のXNUMXつの方法でXNUMX回でカレンダーを作成する必要があります。 今、私はそれを素早く簡単に解決するための便利なユーティリティを紹介します
パーペチュアルカレンダーで月間または年次カレンダーを簡単に作成
パーペチュアルカレンダー の強力なユーティリティのXNUMXつです Kutools for Excel、Excelで月間または年次カレンダーを一度にすばやく作成するのに役立ちます。
Kutools for Excel, 以上で 300 便利な機能は、あなたの仕事をより簡単にします。 | ||
1。 クリック エンタープライズ > ワークシート > パーペチュアルカレンダー。 スクリーンショットを参照してください:
2.ポップダイアログで、カレンダーを作成する月の期間を指定し、をクリックします データドリブン。 スクリーンショットを参照してください:
次に、XNUMXつのカレンダーワークシートを使用して新しいワークブックが作成されます。 スクリーンショットを参照してください:
ヒント:
特定の月のカレンダーを作成するだけの場合は、ダイアログの[開始]テキストボックスと[終了]テキストボックスの両方で同じ月を選択する必要があります。
パーペチュアルカレンダーの詳細については、ここをクリックしてください
最高のオフィス生産性ツール
Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます
- 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
- スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
- セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
- [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
- 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
- テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
- スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
- ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
- 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作業をはるかに簡単にします
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
