当サイトはアフィリエイト広告を利用しています。
Excelでガントチャートを作成する方法には、セルを塗りつぶす方法以外に、矢印(図形)を描く方法があります。
そこで今回は、Excelでガントチャートの矢印を自動作成する方法をご紹介します。
なお、今回ご紹介する方法では「マクロ」を使います。マクロの作成方法や実行方法がよく分からない方は、まず先に以下の記事をご一読ください。
Excelで日付から矢印を自動作成する方法
まずは開始日と終了日を入力するとその日付に対応するセルに矢印が作成されるマクロをご紹介します。
以下のコードを標準モジュールにコピペします。
Sub 日付から矢印作成()
Dim rng1 As Range
Dim dt As Range
Dim rng2 As Range
Dim r As Long
Dim foundCell1 As Range
Dim startCol As Long
Dim foundCell2 As Range
Dim endCol As Long
Dim targetRng As Range
Set rng1 = ActiveSheet.Range(Range("C6"), Range("C6").End(xlToRight)) ' 日付入力範囲
Set dt = ActiveSheet.Range("B4") ' 今日の日付入力セル
For Each rng2 In ActiveSheet.Range(Range("A8"), Range("A8").End(xlDown)) ' 開始日入力範囲
r = rng2.Row ' 開始日・終了日入力セルの行番号
Set foundCell1 = rng1.Find(rng2, , xlFormulas, xlPart) ' 開始日で検索した時の該当セル
startCol = foundCell1.Column ' 検索該当セルの列番号
If rng2.Offset(0, 1) = "" Then ' 終了日が空欄の場合
Set foundCell2 = rng1.Find(dt, , xlFormulas, xlPart) ' 今日の日付で検索した時の該当セル
endCol = foundCell2.Column '検索該当セルの列番号
Else ' 終了日が空欄ではない場合
Set foundCell2 = rng1.Find(rng2.Offset(0, 1), , xlFormulas, xlPart) ' 終了日で検索した時の該当セル
endCol = foundCell2.Column '検索該当セルの列番号
End If
ActiveSheet.Range(Cells(r, startCol), Cells(r, endCol)).Select
Set targetRng = Selection ' 開始日から終了日までのセル範囲
With ActiveSheet.Shapes.AddLine(targetRng.Left, targetRng.Top + targetRng.Height / 2, _
targetRng.Left + targetRng.Width, targetRng.Top + targetRng.Height / 2).Line
.ForeColor.RGB = RGB(255, 0, 0) ' 線の色
.Weight = 3 ' 線の太さ
.EndArrowheadStyle = 2 ' 線の終点のスタイル
End With
Next rng2
End Sub
コードを貼り付けたら、マクロ実行ボタンに「日付から矢印作成」マクロを登録します。
C6から右に連続した日付、B4に今日の日付、A8から下に開始日、B8から下に終了日が入力されていると、「ガントチャートを作成」ボタンをクリックしたとき、その期間に対応するセル範囲に赤い矢印が作成されます。開始日が空欄の場合矢印は作成されず、終了日が空欄の場合は今日の日付までを期間として矢印が作成されます。
なお、C6から右のセルは「yyyy/mm/dd」のようなデータをユーザー定義で日付だけ表示されるようにしています。数値を入力しただけでは日付と認識されずエラーになるのでご注意ください。
Excelで選択範囲に矢印を自動作成する方法
次に選択範囲に矢印が作成されるマクロをご紹介します。
以下のコードを標準モジュールにコピペします。
Sub 選択範囲に矢印作成()
Dim targetRng As Range
Set targetRng = Selection ' 選択範囲
With ActiveSheet.Shapes.AddLine(targetRng.Left, targetRng.Top + targetRng.Height / 2, _
targetRng.Left + targetRng.Width, targetRng.Top + targetRng.Height / 2).Line
.ForeColor.RGB = RGB(255, 0, 0) ' 線の色
.Weight = 3 ' 線の太さ
.EndArrowheadStyle = 2 ' 線の終点のスタイル
End With
End Sub
コードを貼り付けたら、マクロ実行ボタンに「選択範囲に矢印作成」マクロを登録します。
矢印を作成したいセル範囲を選択した状態で「ガントチャート作成」ボタンをクリックすると、選択範囲に赤い矢印が作成されます。
矢印の色や太さなどは自由にカスタマイズできる!
今回ご紹介したマクロは、どちらも線を引く「AddLineメソッド」を使用しており、以下のようなプロパティを使うことで線の色を赤にしたり、線の終点を三角にして矢印のように見せたりしています。
最後にAddLineメソッドの主要プロパティとそれぞれの設定値をご紹介します。矢印の見た目をカスタマイズしたい方はぜひ参考にしてみてください。
ForeColor(線の色)
ForeColor(フォアカラー)は、線の色を指定できるプロパティです。今回ご紹介したコードではRGB関数を使ってRGB値で色を指定しています。
- 赤
- RGB(255, 0, 0)
- 黄色
- RGB(255, 255, 0)
- 緑
- RGB(0, 255, 0)
- 水色
- RGB(0, 255, 255)
- 青
- RGB(0, 0, 255)
mono
上記以外の色にしたい場合は「(色名)rgb」で検索しましょう。
Weight(線の太さ)
Weight(ウェイト)は、線の太さを指定できるプロパティです。ポイント単位(1ポイント=約0.35ミリ)で指定できます。
EndArrowheadStyle(線の終点のスタイル)
EndArrowheadStyle(エンドアローヘッドスタイル)は、線の終点のスタイルを指定できるプロパティです。
- 矢印なし
- 1
- 三角矢印
- 2
- 開いた矢印
- 3
- 鋭い矢印
- 4
- ひし形
- 5
- 円形矢印
- 6
まとめ
今回は、Excelでガントチャートの矢印を自動作成する方法をご紹介しました。
開始日と終了日から矢印のガントチャートを作成したい方、もしくは選択範囲から矢印のガントチャートを作成したい方は、ぜひ今回ご紹介したマクロを試してみてくださいね。
ご紹介したマクロで希望の動作にならない場合、マクロの作成を依頼できるサービスを利用するのがおすすめです。以下の記事でマクロの作成を依頼できるサービスをご紹介していますので、興味のある方はぜひあわせてご覧ください。
進捗率が知りたい方には以下の記事もおすすめです。
Udemyでは、買い切りの動画講座で好きな分野について自分のペースで学ぶことができます。
パソコンだけでなくスマホにも対応しているので、移動時間や休憩時間にスマホで学習することも可能です。
30日間の返金保証付きなので、初めてでも安心して受講できますよ。
▼ おすすめのExcel VBA講座はこちら ▼