Microsoft Accessで作成されたフロントエンドコンポーネントをいかに継続的であり拡張性を持ったツールを開発していくか考察しています。
【オフィスツールの利用率について】
業務で利用されているオフィスツールであるMicrosoft Officeのシェアは約9割位(2022年度調べ)でMicrosoft Officeが利用されているという統計が出ており、その中でもAccessを含んだパッケージソフトを利用している企業が約7割前後となります。永年版よりサブスクリプション版の方が増えているように思えます。永年版はマイクロソフトの現状のサポートスケジュールを見る限りリリース後5年でメインストリームサポートが切れ、10年で延長サポート切れます。(延長サポートの無いものもあります)延長サポートの切れたものも使う事は出来ますが、セキュリティ面でソフトウェアの更新がされなくなり、最悪顧客にウイルスに感染したファイルを送ってしまう可能性もありOfficeソフトの買い替えを余儀なくされます。ボリュームライセンス版も永年版に準じます。
サブスクリプション版は毎年利用料(購読料)を支払う必要がありますが、常に最新のOfficeを利用可能です。特にB to Bの場合、同じソフトウェアバージョンを使っていないとWordでレイアウトが崩れたり、Excelで関数が存在しないものが出たりと取引上不具合が生じます。その為サブスクリプション版の導入が多いのでしょう。
【Office365で使われているソフトウェア】
DeskTop版と言う範囲でのお話ですが、法人向けOffice 365に含まれる主なソフトウェアは、Word、Excel、PowerPoint、Outlook、Accessです。(利用するエディションにより他にも利用可能なソフトあり)です。その中でも定番はWord、Excel、PowerPoint、Outlookの4つでしょう。何故かAccessとPublisherは置いてけぼり。
【各ソフトウェアの利用状況】
よく使われるソフトウェアとして他に選択肢の少ないOutlook、PowerPointは別としてWordとExcelを比較すると圧倒的にExcelの利用頻度が多く、ExcelをWord代わりに利用している人も少なくありません。そしてExcelを使う上でより効率よく作業を行う為にマクロの利用が挙げられます。エクセルマクロは少しレクチャーされれば簡単なマクロはGUI操作で簡単に出来てしまいます。特定の個人しか使わないマクロは俗に野良マクロと呼ばれ専門部署があってもメンテナンスは非常に困難を極めます。Excelはファイル毎にマクロを持っており、ファイルコピーでいくらでも複製が作れます。マクロを少し変更したものを利用すると次々に野良マクロが氾濫します。こうなると作成者しか管理が出来なくなります。「どれが最新なの?」って事になります。、他方Accessはあまり利用されず眠ったままが多いですね。
【Excelの得意な事、苦手な事】
得意分野は所謂表計算、帳票作成、グラフレポート、統計は少し文献等を読んだり、他社員に聞けば判り、マクロによる自動化は利用人口が多いので職場に大抵マクロの達人がいたりしまのでさほど困らないでしょう。苦手分野は大量のデータ処理、複数人でのデータ共有、他のExcelファイルとのリンクによる動作速度低下、個人別のアクセス権設定、個人的にはお気軽にできないドロップダウンリスト8行以上の設定だったりします。
【Accessがあっても利用頻度が低い理由】
AccessはExcelと違い直感的に使えない事です。Excelならば「空白のブック」を開けばすぐに何かしら文字なり数字なり入力が可能で四則演算であればExcel関数を知らなくても作成可能です。一方Accessはと言うとデータを入力するにはそれを入れる箱(テーブルというオブジェクト)を作成してからでなければデータを入力する事は出来ません。またデータシートそのままでは四則演算もする事が出来ず、やれることはデータのフィルタリング程度でしょう。これではExcelでいいやって事になります。
【Accessの欠点1】
ズバリ!Accessを開発する人が社内にいない事です。Excelって誰もが使っているのでわからない事があれば近くの人に聞くか、ウェブで調べれば大抵の事は解決できますが、Accessは基本的な使い方等はウェブで調べる事は可能ですが、自社業務にどう反映させるかがイメージし難いのではないでしょうか。またAccessを使う上で避けて通れないVBA(プログラミング言語の一つ)があります。これが使えないとAccessを使っている意味すらありません。Accessのツール開発を外注に出す方法もありますが、丸投げするのではなく、開発と伴にAccessの社員研修も併せて外注にする事です。社内に運用保守出来る社員がいれば以降外注に頼らず内製化を進める事が出来るのでランニングコストも安価になります。
【Accessの欠点2】
Accessで作られたツールは属人化しやい事です。見た目は同じ処理でも中身の処理が人それぞれ事なるという事です。ツールを作る上での作法が決められていないと起こる症状です。社内にAccessを使いこなせる人がいてExcelで行っていた業務をAccessに移行します。開発者がいる間は、不具合の修正、改修、トラブルシューティング等を行ってくれるでしょう。ただ開発した社員が退職等をした場合のその後どうするのでしょう。Excelの野良マクロと同じで誰も手を付けられなくなります。予算を付ければ外注でもいいでしょう。しかし理想としては社内に引継ぎ者がいればそのツールは継続して利用出来ます。
【Excelの弱点を克服する為には】
Excelは大容量データ処理、データ共有に難あり、野良マクロの氾濫、バージョン管理の煩雑さが挙げられます。方法の一つとして市販のWebデータベースを使ったパッケージソフトウェアの導入が挙げられます。でも導入コストも馬鹿になりません。こういったソフトウェアの謳い文句に「知識不要ですぐに使えますっ」てよく耳にしますが、知識不要で使えるものなんか実際には存在しません。ある程度パソコンの知識やOfficeソフトの知識があってこその知識不要と思います。予算があればとお考えの方、Accessを忘れていませんか?、Office 365にはAccessも付いてます。エクセルより大容量のデータ処理、データ共有も標準装備で持っており野良マクロ、アクセス権限等およそExcelで出来なかった事が追加費用ゼロで実現出来ます。
Accessを使うのもいい事尽くめではありません。外部に最初のツール開発・保守をするか、もしくは自社でAccessを使える人を育成するしかありません。
注:Access、Excelともに汎用データベース(Oracle、SQLServer、PostgreSQL、MySQL等)とリンクは可能なので大容量データからデータ抽出等は可能です。
【Accessの真価】
Accessの良いところはOffice 365導入企業であればソフトウェア導入の追加費用が発生しない事です。つまりダメであればいつでも止めること出来るって事です。データ共有や大容量のデータを扱いたいがExcelでは荷が重い、野良マクロを撲滅したい、申請書等のフォーマットを統一したい、データを一元化したい等を実現する事が出来ます。
昨今RPAツールが流行りですが、Accessでも自動化は可能です。
例えば、
Accessで基幹システムからCSVデータが出力される のを監視
Accessのデータベースにデータ取込み
特定のフィルタをかけてExcelファイルに出力
特定のアドレスにOutlookから添付ファイルとしてメール送信する
上記は常時起動しておく事で 基幹システムからデータが出力された時に稼働するシステムです。
【Accessのクラウド化】
Accessはオンプレミスでの運用で行われてきましたが、近年ではSharePoint上にデータベースをリストとして保存し、フロントエンドデータベースからはそのリストをリンクテーブルとして扱う事でクラウド化を実現出来ます。
フロントエンドデータベースはSharePointのドキュメントに置いてあり、初回こそマニュアルでダウンロードしますが、以降のバージョンアップは、フロントエンドデータベースのロジックによりほぼ自動でバージョンアップが出来るよう基本ツール開発をしました。
又、クラウド上にデータを置くことにより、自前でサーバー等を維持管理する必要が無くなります。
関連リンク:AccessとSharePoint
フロントエンドデータベースはマイクロソフトアカウントのサインインとAccessデータベースに登録されているMACアドレスが一致しないとダウンロード出来ないようにします。
【「iMenuA」統合型目次システム(Integrated menu system by Microsoft Access)の導入】
「iMenuA」は業務基幹フォーム・クエリー・テーブル等のオブジェクト群を加えただけで独立したツールになるAccessで作成した基幹ツールです。
これにより大幅に開発工数を減らすことが可能となり。他の業務システムを作ってもフォーム名、目次、ユーザー名等は「iMenuA」を通して開発ツールのオブジェクト名等の一元管理が出来ます。「iMenuA」は、複数の業務ツールを一元的に管理できるAccessのフロントエンドコンポーネント群です。
Accessによる業務ツールをこれから増やしていく場合、一から開発するのではなく共通するもの以外を作成する事でリリースまでの時間を短縮出来ます。
以降の説明では
フロントエンドコンポーネント群をフロントエンドデータベース(FEDB)
バックエンドコンポーネント群をバックエンドデータベース(BEDB)
と呼び解説します。
エンドユーザーが目に触れる部分はフォームオブジェクトです。ここに配置するボタン等は位置、色等を統一する事で使いやすさを増す事でしょう。
システム全体の概要とデータベースの相互関係のマニュアル作成
使用ツールはMicrosoft OneNoteを利用します。共有で利用でき、加筆修正可能です。Microsoft Accountをお持ちであれば、加筆する方、閲覧のみの方の設定も可能です。
開発過程で気づいた処理方法を試してこれは便利というイベントプロシージャを掲載します。
このウェブサイトに記述されている事はあくまで個人の感想です。VBAの記述はあくまでサンプルですので、使用の際はコードを十分確認の上ご使用ください。