CEDEC 公式サイトのタイムテーブルのページ下部から、セッションのリストを CSV や JSON ファイルでダウンロードできるのはご存知でしょうか?
https://cedec.cesa.or.jp/2022/session/timetable
しかし CSV のままでは見辛いです。
なので、毎年 CEDEC の時期になると Excel で整形するマクロで自分用にリストを作っています。実行するとこんな感じに(情報はバッサリ落としています)。
誰かの役に立つかも知れないので本記事に内容をメモっておこうかと思います。
Sub ArrangeCedecSessionList() ' ' ArrangeCedecSessionList Macro ' ' ページ全体のフォントをメイリオ・サイズを10pに Cells.Select With Selection.Font .Name = "メイリオ" .Size = 10 End With '列ヘッダーを選択・センタリング・着色・フィルタ・開始時間で昇順ソート Range("A1:L1").Select With Selection .HorizontalAlignment = xlCenter .Interior.Color = 5296274 .Replace What:="時間", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False .AutoFilter End With With ActiveSheet.AutoFilter.Sort .SortFields.Clear .SortFields.Add2 _ Key:=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _ :=xlSortNormal .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ' 時間のみ表示・幅調整・センタリング Columns("A:B").Select With Selection .NumberFormatLocal = "h:mm" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .ColumnWidth = 6 End With ' 列の削除 Columns("E:J").Select Selection.Delete Shift:=xlToLeft ' セッション名の列の幅を広げる Columns("D:D").Select Selection.ColumnWidth = 80 ' 置換:基調講演と分表示だけ残して削除 Columns("C:C").Select With Selection .Replace What:=")", Replacement:="" .Replace What:="(", Replacement:="" .Replace What:="チュートリアル", Replacement:="" .Replace What:="レギュラーセッション", Replacement:="" .Replace What:="ショートセッション", Replacement:="" .Replace What:="ラウンドテーブル", Replacement:="" .Replace What:="パネルディスカッション", Replacement:="" .Replace What:="インタラクティブセッション", Replacement:="" End With ' 置換:同時通訳・YouTube・Zoom配信だけ残して削除 Columns("E:E").Select With Selection .Replace What:="現地講演", Replacement:="" .Replace What:="事前収録", Replacement:="" .Replace What:="公開", Replacement:="" .Replace What:="Ask the Speaker", Replacement:="" .Replace What:="ライトパス", Replacement:="" ' 置換:改行の削除 .Replace What:="" & Chr(10) & "", Replacement:="" End With ' セルを折り返さない Selection.WrapText = False ' ハイパーリンク化 Dim iRowStart ' Forで処理する先頭行 Dim iRowEnd ' Forで処理する最終行 Dim r ' 処理する列番号 Dim i ' ループカウンタ Dim url ' URL iRowStart = 2 iRowEnd = Cells(Rows.Count, 1).End(xlUp).Row i = iRowEnd r = 6 ' URLの記載のある列番号 For i = iRowStart To iRowEnd url = Cells(i, r).Value Cells(i, r).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ url, TextToDisplay:="■" Next ' 基調講演の行を目立たせる i = iRowEnd r = 3 ' "基調講演"の記載のある列番号 For i = iRowStart To iRowEnd ' 検索値を含む文字列を探す If InStr(Cells(i, r), "基調講演") > 0 Then ' セルを選択して塗り潰す Range(Cells(i, 1), Cells(i, 6)).Select ' 先頭列と最終列を番号で指定 With Selection.Interior .ThemeColor = xlThemeColorAccent6 .TintAndShade = 0.799981688894314 End With End If Next ' YouTube配信ありとタイムシフト無しの行を目立たせる i = iRowEnd r = 5 ' "基調講演"の記載のある列番号 For i = iRowStart To iRowEnd ' 検索値を含む文字列を探す If InStr(Cells(i, r), "youtube") > 0 Then ' セルを選択して塗り潰す Range(Cells(i, 1), Cells(i, 6)).Select ' 先頭列と最終列を番号で指定 With Selection.Interior .ThemeColor = xlThemeColorAccent2 .TintAndShade = 0.799981688894314 End With End If ' 検索値を含む文字列を探す If InStr(Cells(i, r), "タイムシフトなし") > 0 Then ' セルを選択して塗り潰す Range(Cells(i, 1), Cells(i, 6)).Select ' 先頭列と最終列を番号で指定 With Selection.Interior .ThemeColor = xlThemeColorAccent2 .TintAndShade = 0.399975585192419 End With End If Next ' センタリング Range("C:C,E:F").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With ' 先頭のセルを選択 Range("A1").Select End Sub