以下のコードをVBEの標準モジュールにまるっとコピペするだけで、テンプレートが完成します! VBEの使用法に関しては、別で用意してある「Excelマクロ(VBA)の設定手順」を参照してください。 -----以下、コード----- Option Explicit Sub 業務効率化のための時間データ分析テンプレート作成() 10 On Error GoTo ErrorHandler 20 Dim currentStep As String 30 currentStep = "初期設定" 40 Application.ScreenUpdating = False 50 Application.DisplayAlerts = False 60 ' シートをクリアして名前を変更 70 ActiveSheet.UsedRange.Clear 80 ActiveSheet.Name = "時間分析" 90 currentStep = "タイトル設定" 100 ' タイトルを設定 110 Range("A1").Value = "業務効率化のための時間データ分析テンプレート" 120 Range("H1").Value = "バージョン 1.0" 130 Range("A1:H1").Merge 140 With Range("A1") 150 .Font.Size = 14 160 .Font.Bold = True 170 .HorizontalAlignment = xlCenter 180 End With 190 currentStep = "基本設定セクション" 200 ' 基本設定セクション 210 Range("A3").Value = "【基本設定】" 220 Range("A3:H3").Merge 230 With Range("A3") 240 .Interior.Color = RGB(68, 114, 196) 250 .Font.Color = RGB(255, 255, 255) 260 .Font.Bold = True 270 .HorizontalAlignment = xlLeft 280 End With 290 Range("A4").Value = "日付" 300 Range("B4").Value = "タスク名" 310 Range("C4").Value = "開始時間" 320 Range("D4").Value = "終了時間" 330 Range("E4").Value = "所要時間(時:分:秒)" 340 Range("F4").Value = "所要時間(分)" 350 Range("G4").Value = "所要時間(秒)" 360 Range("H4").Value = "備考" 370 With Range("A4:H4") 380 .Interior.Color = RGB(180, 198, 231) 390 .Font.Bold = True 400 .HorizontalAlignment = xlCenter 410 End With 420 currentStep = "サンプルデータ入力" 430 ' サンプルデータを入力 440 Range("A5").Formula = "=TODAY()" 450 Range("B5").Value = "データ入力" 460 Range("C5").Value = TimeValue("9:30") 470 Range("D5").Value = TimeValue("10:15") 480 Range("E5").Formula = "=IF(AND(C5<>"""",D5<>""""),D5-C5,"""")" 490 Range("F5").Formula = "=IF(E5<>"""",E5*1440,"""")" 500 Range("G5").Formula = "=IF(E5<>"""",E5*86400,"""")" 510 Range("H5").Value = "定例業務" 520 Range("A6").Formula = "=TODAY()" 530 Range("B6").Value = "チーム会議" 540 Range("C6").Value = TimeValue("13:00") 550 Range("D6").Value = TimeValue("14:30") 560 Range("E6").Formula = "=IF(AND(C6<>"""",D6<>""""),D6-C6,"""")" 570 Range("F6").Formula = "=IF(E6<>"""",E6*1440,"""")" 580 Range("G6").Formula = "=IF(E6<>"""",E6*86400,"""")" 590 Range("H6").Value = "週次進捗確認" 600 Range("A7").Formula = "=TODAY()" 610 Range("B7").Value = "資料作成" 620 Range("C7").Value = TimeValue("15:00") 630 Range("D7").Value = TimeValue("17:15") 640 Range("E7").Formula = "=IF(AND(C7<>"""",D7<>""""),D7-C7,"""")" 650 Range("F7").Formula = "=IF(E7<>"""",E7*1440,"""")" 660 Range("G7").Formula = "=IF(E7<>"""",E7*86400,"""")" 670 Range("H7").Value = "プレゼン準備" 680 Range("A8").Formula = "=TODAY()" 690 Range("B8").Value = "メール対応" 700 Range("C8").Value = TimeValue("8:45") 710 Range("D8").Value = TimeValue("9:15") 720 Range("E8").Formula = "=IF(AND(C8<>"""",D8<>""""),D8-C8,"""")" 730 Range("F8").Formula = "=IF(E8<>"""",E8*1440,"""")" 740 Range("G8").Formula = "=IF(E8<>"""",E8*86400,"""")" 750 Range("H8").Value = "クライアント対応" 760 Range("A9").Formula = "=TODAY()" 770 Range("B9").Value = "企画会議" 780 Range("C9").Value = TimeValue("10:30") 790 Range("D9").Value = TimeValue("12:00") 800 Range("E9").Formula = "=IF(AND(C9<>"""",D9<>""""),D9-C9,"""")" 810 Range("F9").Formula = "=IF(E9<>"""",E9*1440,"""")" 820 Range("G9").Formula = "=IF(E9<>"""",E9*86400,"""")" 830 Range("H9").Value = "新企画検討" 840 currentStep = "時間集計セクション" 850 ' 時間集計セクション 860 Range("A11").Value = "【時間集計】" 870 Range("A11:H11").Merge 880 With Range("A11") 890 .Interior.Color = RGB(68, 114, 196) 900 .Font.Color = RGB(255, 255, 255) 910 .Font.Bold = True 920 .HorizontalAlignment = xlLeft 930 End With 940 Range("A12").Value = "合計時間:" 950 Range("B12").Formula = "=SUMIF(E5:E9,""<>"",E5:E9)" 960 Range("B12").NumberFormat = "[h]:mm:ss" 970 Range("A13").Value = "平均時間:" 980 Range("B13").Formula = "=AVERAGEIF(E5:E9,""<>"",E5:E9)" 990 Range("B13").NumberFormat = "[h]:mm:ss" 1000 Range("A14").Value = "最短時間:" 1010 Range("B14").FormulaArray = "=MIN(IF(E5:E9<>"""",E5:E9))" 1020 Range("B14").NumberFormat = "[h]:mm:ss" 1030 Range("A15").Value = "最長時間:" 1040 Range("B15").FormulaArray = "=MAX(IF(E5:E9<>"""",E5:E9))" 1050 Range("B15").NumberFormat = "[h]:mm:ss" 1060 currentStep = "効率分析セクション" 1070 ' 効率分析セクション 1080 Range("A17").Value = "【効率分析】" 1090 Range("A17:H17").Merge 1100 With Range("A17") 1110 .Interior.Color = RGB(68, 114, 196) 1120 .Font.Color = RGB(255, 255, 255) 1130 .Font.Bold = True 1140 .HorizontalAlignment = xlLeft 1150 End With 1160 Range("A18").Value = "カテゴリ" 1170 Range("B18").Value = "合計時間" 1180 Range("C18").Value = "割合" 1190 Range("D18").Value = "目標時刻" 1200 Range("E18").Value = "達成率" 1210 With Range("A18:E18") 1220 .Interior.Color = RGB(180, 198, 231) 1230 .Font.Bold = True 1240 .HorizontalAlignment = xlCenter 1250 End With 1260 Range("A19").Value = "会議" 1270 Range("B19").Formula = "=SUMPRODUCT((ISNUMBER(SEARCH(""会議"",B5:B9)))*(E5:E9))" 1280 Range("C19").Formula = "=IF(B19<>"""",B19/B12,"""")" 1290 Range("D19").Formula = "=TIME(2,0,0)" 1300 Range("D19").NumberFormat = "[h]:mm" 1310 Range("E19").Formula = "=IF(AND(B19<>"""",D19<>""""),B19/D19,"""")" 1320 Range("A20").Value = "資料作成" 1330 Range("B20").Formula = "=SUMPRODUCT((ISNUMBER(SEARCH(""資料"",B5:B9)))*(E5:E9))" 1340 Range("C20").Formula = "=IF(B20<>"""",B20/B12,"""")" 1350 Range("D20").Formula = "=TIME(2,30,0)" 1360 Range("D20").NumberFormat = "[h]:mm" 1370 Range("E20").Formula = "=IF(AND(B20<>"""",D20<>""""),B20/D20,"""")" 1380 Range("A21").Value = "データ処理" 1390 Range("B21").Formula = "=SUMPRODUCT((ISNUMBER(SEARCH(""データ"",B5:B9)))*(E5:E9))" 1400 Range("C21").Formula = "=IF(B21<>"""",B21/B12,"""")" 1410 Range("D21").Formula = "=TIME(1,0,0)" 1420 Range("D21").NumberFormat = "[h]:mm" 1430 Range("E21").Formula = "=IF(AND(B21<>"""",D21<>""""),B21/D21,"""")" 1440 Range("A22").Value = "コミュニケーション" 1450 Range("B22").Formula = "=SUMPRODUCT((ISNUMBER(SEARCH(""メール"",B5:B9)))*(E5:E9))+SUMPRODUCT((ISNUMBER(SEARCH(""電話"",B5:B9)))*(E5:E9))" 1460 Range("C22").Formula = "=IF(B22<>"""",B22/B12,"""")" 1470 Range("D22").Formula = "=TIME(1,0,0)" 1480 Range("D22").NumberFormat = "[h]:mm" 1490 Range("E22").Formula = "=IF(AND(B22<>"""",D22<>""""),B22/D22,"""")" 1500 currentStep = "時間帯分析セクション" 1510 ' 時間帯分析セクション 1520 Range("A24").Value = "【時間帯分析】" 1530 Range("A24:H24").Merge 1540 With Range("A24") 1550 .Interior.Color = RGB(68, 114, 196) 1560 .Font.Color = RGB(255, 255, 255) 1570 .Font.Bold = True 1580 .HorizontalAlignment = xlLeft 1590 End With 1600 Range("A25").Value = "時間帯" 1610 Range("B25").Value = "活動数" 1620 Range("C25").Value = "合計時間" 1630 Range("D25").Value = "平均時間" 1640 With Range("A25:D25") 1650 .Interior.Color = RGB(180, 198, 231) 1660 .Font.Bold = True 1670 .HorizontalAlignment = xlCenter 1680 End With 1690 Range("A26").Value = "午前(8:00-12:00)" 1700 Range("B26").Formula = "=COUNTIFS(C5:C9,"">=8:00"",C5:C9,""<12:00"")" 1710 Range("C26").Formula = "=SUMPRODUCT(--(C5:C9>=TIME(8,0,0)),--(C5:C9=12:00"",C5:C9,""<17:00"")" 1750 Range("C27").Formula = "=SUMPRODUCT(--(C5:C9>=TIME(12,0,0)),--(C5:C9=17:00"")" 1790 Range("C28").Formula = "=SUMPRODUCT(--(C5:C9>=TIME(17,0,0)),E5:E9)" 1800 Range("D28").Formula = "=IF(B28>0,C28/B28,0)" 1810 currentStep = "時間間隔計算セクション" 1820 ' 時間間隔計算セクション 1830 Range("A30").Value = "【時間間隔計算】" 1840 Range("A30:H30").Merge 1850 With Range("A30") 1860 .Interior.Color = RGB(68, 114, 196) 1870 .Font.Color = RGB(255, 255, 255) 1880 .Font.Bold = True 1890 .HorizontalAlignment = xlLeft 1900 End With 1910 Range("A31").Value = "タスク間の間隔" 1920 Range("A31:H31").Merge 1930 With Range("A31") 1940 .Font.Bold = True 1950 .HorizontalAlignment = xlLeft 1960 End With 1970 Range("A32").Value = "活動間の平均空白時間:" 1980 Range("B32").Formula = _ "=(IF(C6>D5,C6-D5,0)+IF(C7>D6,C7-D6,0)+IF(C8>D7,C8-D7,0)+IF(C9>D8,C9-D8,0))" & _ "/(N(C6>D5)+N(C7>D6)+N(C8>D7)+N(C9>D8))" 1990 Range("C32").Formula = "=TEXT(B32,""[h]:mm:ss"")" 2000 Range("A33").Value = "最長空白時間:" 2010 Range("B33").Formula = "=MAX(IF(C6-D5>0,C6-D5,0),IF(C7-D6>0,C7-D6,0),IF(C8>D7,C8-D7,0),IF(C9>D8,C9-D8,0))" 2020 Range("C33").Formula = "=TEXT(B33,""[h]:mm:ss"")" 2030 currentStep = "効率化提案セクション" 2040 ' 効率化提案セクション 2050 Range("A35").Value = "【効率化提案】" 2060 Range("A35:H35").Merge 2070 With Range("A35") 2080 .Interior.Color = RGB(68, 114, 196) 2090 .Font.Color = RGB(255, 255, 255) 2100 .Font.Bold = True 2110 .HorizontalAlignment = xlLeft 2120 End With 2130 Range("A36").Value = "1. 会議時間が" 2140 Range("B36").Formula = "=IF(B19>D19,""目標を超過しています。議題の絞り込みや進行の効率化を検討しましょう。"",""目標内に収まっています。効率的な会議運営ができています。"")" 2150 Range("B36:H36").Merge 2160 Range("A37").Value = "2. 最も時間がかかるタスクは" 2170 Range("B37").Formula = "=IF(E5=B15,B5,IF(E6=B15,B6,IF(E7=B15,B7,IF(E8=B15,B8,IF(E9=B15,B9,"""")))))" 2180 Range("C37").Value = "です。分割や効率化を検討しましょう。" 2190 Range("C37:H37").Merge 2200 ' B37セルを赤文字+太字 2210 With Range("B37").Font 2220 .Color = vbRed 2230 .Bold = True 2240 End With 2250 Range("A38").Value = "3. タスク間の空白時間が" 2260 Range("B38").Formula = "=IF(B32>TIME(0,30,0),""長い傾向にあります。タスクの効率的な配置を検討しましょう。"",""適切に管理されています。"")" 2270 Range("B38:H38").Merge 2280 currentStep = "日付別集計データセクション" 2290 ' 日付別集計用データセクション 2300 Range("A40").Value = "【日付別集計用データ】" 2310 Range("A40:H40").Merge 2320 With Range("A40") 2330 .Interior.Color = RGB(68, 114, 196) 2340 .Font.Color = RGB(255, 255, 255) 2350 .Font.Bold = True 2360 .HorizontalAlignment = xlLeft 2370 End With 2380 Range("A41").Value = "日付" 2390 Range("B41").Value = "総業務時間" 2400 Range("C41").Value = "会議時間" 2410 Range("D41").Value = "資料作成時間" 2420 Range("E41").Value = "その他時間" 2430 With Range("A41:E41") 2440 .Interior.Color = RGB(180, 198, 231) 2450 .Font.Bold = True 2460 .HorizontalAlignment = xlCenter 2470 End With 2480 currentStep = "日付別集計データ作成" 2490 Range("A42").Formula = "=A5" 2500 Range("B42").Formula = "=SUMIFS(E5:E9,A5:A9,A42)" 2510 Range("C42").Formula = "=SUMPRODUCT((A5:A9=A42)*(ISNUMBER(SEARCH(""会議"",B5:B9)))*(E5:E9))" 2520 Range("D42").Formula = "=SUMPRODUCT((A5:A9=A42)*(ISNUMBER(SEARCH(""資料"",B5:B9)))*(E5:E9))" 2530 Range("E42").Formula = "=B42-(C42+D42)" 2540 Range("A43").Formula = "=A5+1" 2550 Range("B43").Formula = "=SUMIFS(E5:E9,A5:A9,A43)" 2560 Range("C43").Formula = "=SUMPRODUCT((A5:A9=A43)*(ISNUMBER(SEARCH(""会議"",B5:B9)))*(E5:E9))" 2570 Range("D43").Formula = "=SUMPRODUCT((A5:A9=A43)*(ISNUMBER(SEARCH(""資料"",B5:B9)))*(E5:E9))" 2580 Range("E43").Formula = "=B43-(C43+D43)" 2590 Range("A44").Formula = "=A5+2" 2600 Range("B44").Formula = "=SUMIFS(E5:E9,A5:A9,A44)" 2610 Range("C44").Formula = "=SUMPRODUCT((A5:A9=A44)*(ISNUMBER(SEARCH(""会議"",B5:B9)))*(E5:E9))" 2620 Range("D44").Formula = "=SUMPRODUCT((A5:A9=A44)*(ISNUMBER(SEARCH(""資料"",B5:B9)))*(E5:E9))" 2630 Range("E44").Formula = "=B44-(C44+D44)" 2640 Range("A45").Formula = "=A5+3" 2650 Range("B45").Formula = "=SUMIFS(E5:E9,A5:A9,A45)" 2660 Range("C45").Formula = "=SUMPRODUCT((A5:A9=A45)*(ISNUMBER(SEARCH(""会議"",B5:B9)))*(E5:E9))" 2670 Range("D45").Formula = "=SUMPRODUCT((A5:A9=A45)*(ISNUMBER(SEARCH(""資料"",B5:B9)))*(E5:E9))" 2680 Range("E45").Formula = "=B45-(C45+D45)" 2690 Range("A46").Formula = "=A5+4" 2700 Range("B46").Formula = "=SUMIFS(E5:E9,A5:A9,A46)" 2710 Range("C46").Formula = "=SUMPRODUCT((A5:A9=A46)*(ISNUMBER(SEARCH(""会議"",B5:B9)))*(E5:E9))" 2720 Range("D46").Formula = "=SUMPRODUCT((A5:A9=A46)*(ISNUMBER(SEARCH(""資料"",B5:B9)))*(E5:E9))" 2730 Range("E46").Formula = "=B46-(C46+D46)" 2740 currentStep = "書式設定" 2750 ' セルの書式設定 2760 Range("A5:A9,A42:A46").NumberFormat = "yyyy/mm/dd" 2770 Range("C5:D9").NumberFormat = "h:mm" 2780 Range("E5:E9,B12:B15,B19:B22,C26:D28,B32:B33").NumberFormat = "[h]:mm:ss" 2790 Range("C19:C22,E19:E22").NumberFormat = "0.0%" 2800 Range("F5:F9").NumberFormat = "0.00" 2810 Range("B42:E46").NumberFormat = "[h]:mm" 2820 currentStep = "条件付き書式設定" 2830 ' 達成率の色分け 2840 Range("E19:E22").FormatConditions.Delete 2850 Range("E19:E22").FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:=0.8 2860 Range("E19:E22").FormatConditions(1).Interior.Color = RGB(255, 199, 206) 2870 Range("E19:E22").FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, Formula1:=0.8, Formula2:=0.99 2880 Range("E19:E22").FormatConditions(2).Interior.Color = RGB(255, 235, 156) 2890 Range("E19:E22").FormatConditions.Add Type:=xlCellValue, Operator:=7, Formula1:="1" ' xlGreaterEqual → 7 2900 Range("E19:E22").FormatConditions(3).Interior.Color = RGB(198, 239, 206) 2910 ' 所要時間の色分け 2920 Range("E5:E9").FormatConditions.Delete 2930 Range("E5:E9").FormatConditions.Add Type:=xlExpression, Formula1:="=AND(E5<>"""",E5<0.01736)" 2940 Range("E5:E9").FormatConditions(1).Interior.Color = RGB(198, 239, 206) 2950 Range("E5:E9").FormatConditions.Add Type:=xlExpression, Formula1:="=AND(E5>=0.01736,E5<0.0347)" 2960 Range("E5:E9").FormatConditions(2).Interior.Color = RGB(255, 235, 156) 2970 Range("E5:E9").FormatConditions.Add Type:=xlExpression, Formula1:="=AND(E5>=0.0347,E5<>"""")" 2980 Range("E5:E9").FormatConditions(3).Interior.Color = RGB(255, 199, 206) 2990 currentStep = "レイアウト調整" 3000 Columns("A:H").AutoFit 3010 Columns("E:E").ColumnWidth = 18 3020 Columns("H:H").ColumnWidth = 20 3030 Range("A5").Select 3040 With ActiveWindow 3050 .SplitColumn = 0 3060 .SplitRow = 1 3070 .FreezePanes = True 3080 End With 3090 Range("A1").Select 3100 ' ★全体中央寄せ 3110 Cells.HorizontalAlignment = xlCenter ' ★ここでB36/C37/B38を左寄せし直す 3120 Range("B36:H36").HorizontalAlignment = xlLeft ' B36 3130 Range("C37:H37").HorizontalAlignment = xlLeft ' C37 3140 Range("B38:H38").HorizontalAlignment = xlLeft ' B38 3150 Application.ScreenUpdating = True 3160 Application.DisplayAlerts = True 3170 MsgBox "業務効率化のための時間データ分析テンプレートが作成されました。", vbInformation, "テンプレート作成完了" 3180 Exit Sub ErrorHandler: 3190 Application.ScreenUpdating = True 3200 Application.DisplayAlerts = True 3210 MsgBox "エラーが発生しました: " & Err.Description & vbCrLf & _ "現在の処理: " & currentStep & vbCrLf & _ "エラー番号: " & Err.Number & vbCrLf & _ "エラー行番号: " & Erl, _ vbCritical, "エラー" End Sub