LoginSignup
80
60

ExcelのVBAを使ってガントチャート(超簡易版)を作成したい...!

Posted at

エンジニアのみなさま、日々の学習本当にお疲れ様です!
また本記事まで足を運んでいただき本当に感謝です。
約3分程度で読めるので最後まで読んでもらえると幸いです。

はじめに

案件でプロジェクト管理のサポートをしております。
Excelを使った進捗管理があり、その資料の一部で 「VBA」 を使ってガントチャートが作成されていました。
今までは最低限の関数・ショートカットを覚えてExcelを使っていましたが、まだまだ知らない機能や関数の存在があることを痛感しております。
せっかくExcelに触れる機会が多くなっているので再学習しようと思い、その第一弾としてVBAを触ってみることにしました。

「もっとこうした方が良いよ!」 や 「うちの会社ではこの様な考えで取り組んでます!」 があれば、ぜひぜひコメントで教えていただけますと幸いです。

VBAとは

Visual Basic for Applications の略。
主にマイクロソフト製のMicrosoft Officeシリーズに搭載されているプログラミング言語である。
引用先:Wikipedia

VBAとマクロの関連性について

VBAはプログラミング言語であるのに対して、マクロは機能です。マクロを作成するためには、アプリケーションごとに異なるプログラミング言語を用います。そしてOfficeアプリケーションであるExcelのマクロ機能を使うために、必要になるプログラミング言語というのがVBAなのです。
引用先:https://www.hitachi-solutions.co.jp/rpa/sp/column/rpa_vol26/

ガントチャートを作成してみる(超簡易版)

ステップ1 : WBSの基本的な設定

Excelを開く

  • 新しいワークブックを作成
  • セルに「タスク名」「予定開始日」「予定終了日」を入力

ステップ2 : マクロの準備

VBAエディタを開く

  • リボンにある 「開発」 をクリック
  • Visual Basic をクリック

スクリーンショット 2024-06-16 19.43.56.png

Microsoft Visual Basicの画面が開きます。

マクロを入力する

  • 「挿入」 > 「標準モジュール」 を選択して、新しいモジュールを追加
  • マクロを入力
  • マクロ入力後、Microsoft Visual Basicを閉じると保存される

スクリーンショット 2024-06-16 19.47.58.png

以下のコードをMojule1に貼り付けます。

Sub CreateGanttChart()
    Dim ws As Worksheet
    Dim i As Integer
    Dim startDate As Date
    Dim endDate As Date
    Dim daysDuration As Integer
    Dim cell As Range

    ' WBSが含まれるシートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' データの開始行を指定(ヘッダー行の次から)
    For i = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        startDate = ws.Cells(i, 2).Value
        endDate = ws.Cells(i, 3).Value
        daysDuration = endDate - startDate
        
        ' Gantt Chartの開始列を指定(ここでは列Dから)
        Set cell = ws.Cells(i, 4 + (startDate - ws.Cells(2, 2).Value))
        
        ' Gantt Chartを描画
        cell.Resize(1, daysDuration + 1).Interior.Color = RGB(0, 102, 255)
    Next i
End Sub

ステップ3 : マクロの実行

  • リボンにある「マクロ」を選択
  • 作成したモジュールを選択・実行

20240616.gif

タスクリストの右側に横棒(ガントチャート)が表示されました!
開始日と終了日に合わせて、横棒が可変で対応できていることが分かります。

さいごに

想像以上の手軽さでVBAを実行できました。かなり感動ですw
今後はコードを拡張しながら以下の困りごとに対して1クリックで解決できる様に出来れば最高だなと考えます!

WBSを活用するにあたっての困りごと

  • 予定終了日の期限が近づいているタスクを一目で把握できない
  • Backlog(開発者向けの詳細タスクが含まれているもの)との二重管理が煩わしい
  • WBS作成後、タスクが複数追加された時の追加作業が手間
  • 予実の実績管理が手間

おまけ

弊社のご紹介になります。

▼ コーポレートサイト

▼ Wantedly求人

弊社メンバーは学習した内容を、日々Qiitaの記事にアウトプットしております。
弊社にご興味のある方、まずは求人を見てみてください!
ご応募お待ちしておりますー!

80
60
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
80
60