Excelでダイヤグラム:上り下り

少し間が空きました。上り下りの対応をしたいと思います。 データの見出しに、「下り【東横線】」と書いていました。「【」以降が同じならば、同一の路線とみなすことにします。下り上りでなくても、A線B線でも、内回り外回りでも気にしません。下り上りで駅…

Excelでダイヤグラム:リファクタリング

プログラムの動作を変えずに、ソースコードをきれいにすることをリファクタリングと言います。なんだけど、リファクタリングして動作が変わらないということをどうやって保証するか。 仕事の時はちゃんと悩みますが、今回は出力したダイヤが同じならOKなので…

Excelでダイヤグラム:問題修正

ひとつ問題に気が付きました。駅名が下寄せされていない。 下寄せは、Range(・・).VerticalAlignmentで設定できます。で、それを修正しようとしてもう一つ問題発見。 diag.Range(Cells(rw, 1), Cells(rw, 6 * 22 + 1)).Borders(xlEdgeBottom).LineStyle = xl…

Excelでダイヤグラム:優等列車の設定

今日は優等列車の設定です。データの書き方を決めましょう。 先頭行に列車種別を描いています。字はなんでもいいですが、色をスジに反映しようと思います。通過のマークを決めます。紙で時刻表を見てた人はレのような片側矢印がおなじみですが、ここは普通に…

Excelでダイヤグラム:スジを複数引く

少し間が空いてしまいましたが、再開です。今日のテーマはスジを複数引くことです。同時に、途中駅発とか、途中駅終着とかの対応もしましょう。 データはこんな感じです。 既に縦横は変数にしてあったので、対応は限定的でした。 Sub スジ(路線() As 路線情…

Excelでダイヤグラム:スジを引く

スジを引くところを、路線情報に対応します。複数路線、上り下り、複数列車の準備をしますが、まだ未確認です。 Sub スジ(路線() As 路線情報, dataSheet As Worksheet, diagSheet As Worksheet) dlta = 0.000001 For i = 0 To UBound(路線) cl = 3 brw = 路…

Excelでダイヤグラム:軸の設定

シートの初期化を整理します。時間軸は全路線共通ですが、縦の罫線を引く範囲が路線に依存するので、路線の方に移して、残りの列幅設定はシート初期化の方に入れます。 Sub シート初期化(dataSheet As Worksheet) Sheets.Add After:=dataSheet Cells.Select …

Excelでダイヤグラム:路線情報を構造体にする

そんなわけで、タイトルも「Excelでダイヤグラム」になりました。今日は、路線情報を構造体にします。 構造体でなくてもクラスという選択肢もありますが、路線情報のデータはほぼ読み込むだけで、データを使って何か操作したり、データ間の整合性を取ったり…

線を引いてみた

今日は、線を引くところまでを目指します。 まずは、横軸です。4時から翌日2時までの枠を作ります。Excelの列を10分きざみに見立てて、1時間おきに罫線を入れて行きます。列の幅は試行錯誤で決めました。 Sub 時刻設定(cnt) Columns(1).ColumnWidth = 14 cl …

やりたいこと

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

ブログ開設のごあいさつ

えっと、まずは自己紹介ですね。永井と申します。学生時代のバイトを含めると、IT業界に40年近くいます。 最近感じるのは、昔システムを組んでがっつりやらないとできなかったことが、今はExcelのマクロとかでもできてしまう。昔はムリだろうって言われてた…