Office 365 SoloのExcelで稲妻線の作成(その1:とりあえず直線を描画)

前回のブログのとおり、条件付き書式を使うことでガントチャートのベースを作成することができました。

ただ、できればよくある稲妻線をガントチャートに追加してみたいと思っています。

しかし、おそらく稲妻線はExcelのオブジェクトを使わざるを得ないだろうと思い、マクロをまったく使ったことがない私が1から作成してみることにしました。

そもそもどこにマクロを書くのか?

Macの場合、Windowsと異なり、[ツール]-[マクロ]-[Visual Basic Editor]からマクロを記述していくことになるみたいです。

すると、以下のようにVisual Basic Editorのウィンドウが表示されます。

その後、再度[ツール]から[マクロ…]を選びます

すると、マクロを新規作成する画面がポップアップで出てきますので、今回は「inazuma」という名前で作成します。

その後、[作成]ボタンを押すとマクロを入力する画面が表示されますので、ここに書いていきます。

マクロを記述する

いきなりですが、今回記述したコードは以下の通りです。

 1 Sub inazuma()
 2    Dim progress As Shape
 3    Dim sx As Single
 4    Dim sy As Single
 5    Dim ex As Single
 6    Dim ey As Single
 7    Dim ffb As FreeformBuilder
 8     
 9    sx = ActiveSheet.Cells(4, 7).Left
10    sy = ActiveSheet.Cells(4, 7).Top
11    ex = sx
12    ey = ActiveSheet.Cells(13, 7).Top
13
14    Set ffb = ActiveSheet.Shapes.BuildFreeform(msoEditingCorner, sx, sy)
15    ffb.AddNodes msoSegmentLine, msoEditingCorner, ex, ey
16    Set progress = ffb.ConvertToShape
17
18    With progress.Line
19        .DashStyle = msoLineSolid
20        .Weight = 2
21        .ForeColor.RGB = RGB(255, 0, 0)
22    End With
23 End Sub
    

さっくり内容を説明すると各コードの意味は以下の通りです。

【解説】
2〜7行目・・・各変数の型の定義
9〜12行目・・・稲妻線の開始(sx,sy)と終了(ex, ey)の場所を設定
14行目・・・図形オブジェクトの開始点を設定
15行目・・・図形オブジェクトの終了点を設定
16行目・・・図形を描画
18〜22行目・・・図形オブジェクトのスタイル、太さ、色を設定

実際にVisual Basic Editorに書き込んだイメージは以下の通りです。

コードを書き込んだら、上のツールバーにある緑色の右向き三角▶︎を押しましょう。このマクロが実行されます。

とくにコードにエラーがなければ何も起こりませんが、実際には裏でExcelに図形が描画されています。

このあと、OSのツールバーから[Excel]-[終了してMicrosoft Excelへ戻る]を選択します。

すると以下のとおり、カレンダーの一番左端に赤い線が引かれてることが確認できます。

実際には、今日の日付に合わせて赤い線の位置を調整する必要がありますが、それはまた次回とさせてください。