簡単なタイムテーブルを作りたいのです。ひとつのファイルに、今日から1年の毎日毎時間が例えば10分ごとにひとつの行になっていて、日、週、月の単位で折りたたむことができるといったものです。エクセルで作ることができるでしょうか?あるいは何かソフトがあるでしょうか?アウトルックとは異なり、ひとつのファイルでスクロールして見ることができるようにしたいのです。よろしくお願いします

回答の条件
  • 1人2回まで
  • 登録:2007/04/22 05:09:11
  • 終了:2007/04/29 05:15:03

回答(2件)

id:dream76 No.1

kiyo回答回数1091ベストアンサー獲得回数82007/04/22 12:09:01

ポイント35pt

ホールを貸しきってイベントをする折に、分単位のスケジュールを管理するフォーマットなどはどこかにありませんか?.. - 人力検索はてな

http://q.hatena.ne.jp/1107656015

類似質問がありますよ

id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692007/04/22 13:06:48

ポイント35pt

Excelで作る場合グループ化を使えばなんとか作れそうです。

グループ化をした表の作り方を説明するのはたいへんだし、手作業で作るのは根気が必要なので、一発で作るマクロを作って見ました。

コピーして使ってみてください。

ただし、10分で1行なので52638行にもなるので、

パソコン性能により数分かかるかもしれませんのでじっと待ってください。

(私の環境では30秒かかりませんでした)

Sub Macro()
    Dim myDate
    Dim myTime
    Dim myRow As Long
    Dim myWeek As Integer
    Dim i As Long, j As Long
    Dim stMonth As Long
    Dim stWeek As Long
    
    myDate = Date
    myTime = TimeValue("0:00")
    myRow = 2
    stMonth = 3
    stWeek = 4
    myWeek = Int((Day(Date) - 1) / 7) + 1
    
    With ActiveSheet.Outline
        .AutomaticStyles = False
        .SummaryRow = xlAbove
        .SummaryColumn = xlRight
    End With
    
    Cells(1, 1).Value = "月"
    Cells(1, 2).Value = "週"
    Cells(1, 3).Value = "日"
    Cells(1, 4).Value = "時間"
    Cells(myRow, 1).Value = Month(myDate) & "月"
    myRow = myRow + 1
    Cells(myRow, 2).Value = "第" & myWeek & "週"
    myRow = myRow + 1
    
    For j = 1 To 366
        For i = 1 To 144
            Cells(myRow, 3).Value = Day(myDate) & "日"
            Cells(myRow, 4).Value = myTime
            Cells(myRow, 4).NumberFormatLocal = "h""時""mm""分"";@"
            
            myTime = myTime + 1 / 144
            myRow = myRow + 1
        Next
        
        Rows(myRow - 143 & ":" & myRow - 1).Group
        
        myDate = myDate + 1
        
        If Day(myDate) = 1 Then
            Rows(stMonth & ":" & myRow - 1).Group
            Rows(stWeek & ":" & myRow - 1).Group
            Cells(myRow, 1).Value = Month(myDate) & "月"
            myRow = myRow + 1
            stMonth = myRow
            myWeek = 1
            Cells(myRow, 2).Value = "第" & myWeek & "週"
            myRow = myRow + 1
            stWeek = myRow
        ElseIf Weekday(myDate) = 1 Then
            myWeek = myWeek + 1
            Rows(stWeek & ":" & myRow - 1).Group
            Cells(myRow, 2).Value = "第" & myWeek & "週"
            myRow = myRow + 1
            stWeek = myRow
        End If
        
        If j = 366 Then
            Rows(stMonth & ":" & myRow - 1).Group
            Rows(stWeek & ":" & myRow - 1).Group
        End If
    Next j
End Sub

左上の□1,2,3,4や+-をクリックすることで閉じたり開いたりします。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません