前回のブログのとおり、条件付き書式を使うことでガントチャートのベースを作成することができました。
ただ、できればよくある稲妻線をガントチャートに追加してみたいと思っています。
しかし、おそらく稲妻線は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へ戻る]を選択します。

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

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

コメントを残す