日本史と VBA(家康から慶喜まで)

昨日は、日本史における Excel の用例として、出来事と関係者の年齢表を紹介しました。

infoment.hatenablog.com

そういえば自分は、江戸幕府の将軍を全員知らないかも。
そこで今度は、歴代将軍の表を作成してみました。

f:id:Infoment:20180709233728p:plain

これは、非常にわかりづらいですね。誕生と没年、そして享年、全て数字の羅列であるため、関係が掴み辛くなっています。そこで、視覚化を試みてみました。

Function CalcDateDiff(startDate As Date, endDate As Date) As Date
    CalcDateDiff = DateDiff("yyyy", startDate, endDate)
End Function

Public Function 棒グラフ(開始 As Date, 終了 As Date, 誕生 As Date,As Date)

    Dim 享年    As Long
    DimAs Long
    DimAs Long
    
        享年 = WorksheetFunction.Round(CalcDateDiff(誕生,) / 10, 0)= WorksheetFunction.Round(CalcDateDiff(開始, 誕生) / 10, 0)= WorksheetFunction.Round(CalcDateDiff(, 終了) / 10, 0)
        
       棒グラフ = WorksheetFunction.Rept("・",) _
                + WorksheetFunction.Rept("●", 享年) _
                + WorksheetFunction.Rept("・",)

End Function

f:id:Infoment:20180709234512p:plain

1500年~2000年の、どの期間に存命だったか、グラフの機能を用いずに表しています。大きな黒丸が存命期間です。これで多少、全体像が掴み易くなったでしょうか。
今回の特徴は、REPT関数を用いた点だと思います。指定した文字列を、指定回数繰り返し表示します。

余談ですが、痛ましいことに、7代将軍が僅か7歳で亡くなったことを今回初めて知りました。また、4代将軍:家綱と5代将軍:綱吉が兄弟(父親は3代将軍:家光)であることも、今回初めて知りました。
この試みで、子供が日本史に興味を持ってくれるかどうかは分かりません。しかし少なくとも私にとっては、大変良い勉強になりました(思わぬ副次効果でした)。

参考まで。