列車時刻表ダイヤの改善の課題

路線全体から区間を切り出すための方法

最終的には、区間がエクセルの1行が1駅単位であり、駅の区間は行の範囲として、コピーして別シートに貼り付け合体合成すればいいのであり、

その単純にコピーできるように事前に準備する作業のことになる。

時刻目盛り線

1.横軸(時刻)の目盛りの縦線を駅区間の大きさに調整

 

2.駅区間の開始駅と終了駅で前後の分離

2.1 終了駅での分離

  後続駅への列車線を変形

    削除してしまうのでなく、上り線下り線に応じて、そのまま短くして存在のみ認識可能のように残す。

 

現在はこの処理の開発作業を行っているので、ここに注目する。(まだ他のことには触れない)

(1)区間終了駅での列車線の、上り下りに応じた列車線の変形処理を行う。

・端点

上り線は、下から上に進んでいく線であり、対象区間に入ってくる列車線で、始点は特に形は付けない。

下り線は、上から下に進んでいく線であり、対象区間から出ていく列車線で、この先端には小さい矢印を付ける。

これは難しかった。(技術的には問題解決したつもりだが)

始点あるいは終点がその図形のどちらなのかわからないのである。

当初、自分が作成したものであるから、上り下りでも時間の進む方向に線が向いてると思ったがそうではなく混在していたのである。

で、上り下りではなく、線を引いたときの向きを判別する必要が生じたのである。

「Shape.HorizontalFlip」および「Shape.VerticalFlip」のTrue/False の組み合わせにより方向(4通り)を判別する必要が生じたのである。

 

 

・高さ

  小さく揃える

 

営業キロ対応での当該駅の高さが小さいとき

  とりあえず、駅高さよりも大きいくても、その固定サイズに設定する。

 ※このとき、この駅の高さ(距離応じて)が小さいとき、設定後の列車線が次の駅の領域にかぶることもあり得るわけで、それでもそれは切り離すことで別れる。

この場合、後でコピーしていく場合にも行のサイズを飛び出た列車線になってしまうわけで、これは形が良くない。

そもそも、こうなった場合には、この駅の距離対応高さは、この駅は区間の終了駅であるから、もう距離(次の駅までの)は関係なくなってくるわけで、ここは見やすさだけの調整のことだけになる。

つまり、この駅の行の高さは勝手に広げて構わない。

 

ところがここで問題が発生!

この駅の行の高さを広げたり変えると、それに連動して列車線の高さが変わってしまう。

すると、高さだけ変わることは縦横比が変わることになり、この比は列車の進行速度をも意味するから、速度が変わってしまうのである。

⇒この列車線の高さは変えてはならない!

つまり、セルサイズが変化しても図形はサイズ変化をしない、にする必要。

通常では、営業キロ対エクセル行高さを連携させてダイヤグラムの高さを変化させるので、その図形の属性はセルの変更に合わせてサイズ変更する、となっている必要がある。

それに対して、ここで対応したものに関しては、サイズ変更しては困るのである。

⇒サイズ変更しないように属性変更する

「Shape..Placement = xlMove」

 

これでこの問題は解決。

おまけで、この区間終了駅の後続隣駅までの距離情報はクリアし、そして営業キロ対応行高さも無条件に適当な見やすい高さにすればいい。処理の中で実施してしまう。

 

今回はこれまで!