【VBA】ExcelからSQLを使ってAccessの課題表を管理する方法

Excel,VBA

ネットワークドライブ上に共有のExcel管理表を置くと、高確率でファイルが破損します。
プロジェクト管理ツールを導入すれば済む話ですが、世の中にはExcelでの課題管理から抜け出せない現場もあります。

そんな現場にいた時に作ったツールです。

VBAでSQLを設定し、Accessファイルのデータ取得を行っています。
Accessファイルの情報が最新で正であるという前提で、Excelファイルから情報の取得や更新処理を操作します。

Backlogを使ってください

いきなりですが、こんなツール使わないほうがいいです。
まともな現場であれば、BacklogRedmineを使ってください。

それでも作った理由

ではなぜこんなツールを作ったかというと、プロジェクト管理ツールの導入に非常に後ろ向きな現場だったからです。
『大企業では割り箸だろうがサーバーだろうが購入の手間は同じ』と聞いたことがありますが、まさにそのとおりでした。
プロジェクト管理ツールの導入を待っているわけにもいかず、ありもののExcelとAccessでなんとかしようと作ったのがこのツールです。

ツールの説明

  • ネットワークドライブに配置したAccessファイルに課題の情報を集約します
  • 複数人がローカルのExcelファイルからAccessの最新課題の取り込み、課題の追加、課題の更新をします
  • 課題の削除機能はありませんので直接Accessのテーブルからレコードを削除してください
  • ExcelとAccessのカラム名が同じである必要があります

事前準備

  • Accessファイルをネットワークドライブに配置します
  • ExcelのVBA編集画面からAccessの配置パスを記入します
  • 下記の"課題.accdb"の箇所をAccessファイルを配置したフルパスに書き換えます
' --------------------------------------------------
' Accessファイルの配置パスとエクセルのシート名設定
' --------------------------------------------------
Function setFilePath(odbcDB, workSheetName)
    
    ' Accessファイルの配置パスを記載する
    odbcDB = "課題.accdb"
    ' 実行しているシート名を取得する
    workSheetName = ActiveSheet.Name

End Function
  • ツール → 参照設定から以下の機能を有効にします

使い方①課題の取り込み

  • Excelを開いたらAccessから最新の情報を取り込んで課題を更新します
  • 更新するためには①最新の課題を反映するをクリックします
  • ここでは、Accessから新たに課題3を取り込みます
  • 課題が取り込まれました
  • 変更があったセルは色が付きます

使い方②課題を追加する

  • 新たに課題4を記入し②新しい課題を追加するをクリックします
  • 入力ウィンドウが表示されるので4を指定してOKをクリックします
  • 課題が追加されました
  • Verは自動でカウントアップします
  • Accessファイルを開くと追加されていることがわかります

使い方③課題の更新

  • 既存課題の内容やステータスなどが変わったら課題を指定して更新します
  • ここでは課題4のステータスを処理中に変更しました
  • 変更したら③既存の課題を更新するをクリックします
  • 課題の追加時と同様に入力ウィンドウが表示されるので4を指定してOKをクリックします
  • 更新されるとVerがカウントアップされているのがわかります

やはりBacklogを使ってください

再三になりますが、やはりBacklog、もしくはそれ以外でも構わないのでプロジェクト管理ツールを使って課題を管理したほうが良いです。

ただ、VBAからSQLを使ってAccessの情報を取得するというのはなかなかおもしろく勉強になりました。

Excel,VBA

Posted by junichi