やりたいこと

今回挑戦するのは、「ダイヤグラムを描く」ことです。
鉄道好きな人なら、一度はやったことがあるんじゃないでしょうか。
時刻表から出発時間を拾いながら、グラフ用紙に線を引いていくような作業です。
鉄道関係なくても、数字をみたらビジュアル化するというのは、できる社会人の基本動作ですよね。

最初からいろいろな機能を作りこむのは大変なので、少しずつ作ります。
最初のインプットはこんな感じです。

そして、アウトプットはこんな感じです。

これを、マクロで自動生成したいということです。

まずは新しいシートを作成して、フォントを設定するマクロを作成しましょう。
駅間の狭いところがあると大きな字は書けないので、デフォルトを8ポイントにしました。
Meiryo UIを選ぶと、横に必要なスペースも少な目になります。
そして、駅名をコピーします。
上り下りの別はないので、そこは消します。
上りがある時のことは後日考えます。

今日の内容はこんな感じでした。

Sub ダイヤ生成()
    Dim dataSheet As Worksheet
    Set dataSheet = ActiveSheet

    Call シート初期化(dataSheet)
    Call 駅名コピー(dataSheet)
    
End Sub

Sub シート初期化(dataSheet As Worksheet)
    Sheets.Add After:=dataSheet
    Cells.Select
    With Selection.Font
        .Name = "Meiryo UI"
        .Size = 8
    End With
    Range("A1").Select
End Sub

Sub 駅名コピー(dataSheet As Worksheet)
    rw = 1
    s = dataSheet.Cells(rw, 1).Value
    n = InStr(s, "【")
    If n <> 0 Then
        s = Mid(s, n)
    End If
    Cells(rw, 1).Value = s
    rw = rw + 1
    Do While dataSheet.Cells(rw, 1).Value <> ""
        Cells(rw, 1).Value = dataSheet.Cells(rw, 1).Value
        rw = rw + 1
    Loop
End Sub