「開発でエクセルとアクセスのどっちを使う」論争の決着、第三の選択肢、エクセルとSharePointの連携。
本コラムでは、「業務システム開発」という必要性に迫られた企業が、その開発会社の選定において、ExcelVBA開発を選ぶか。
AccessVBA開発を選ぶか、また、運用に関しては、昨今Microsoft社が力を注いでいる『Microsoft 365 SharePoint 活用』に関することなども、ご紹介したいと思います。
エクセルとアクセスの業務システム開発でよくある質問
このサイトに来られる皆さんの中で、自社の業務システムを作って業務の自動化をしたいが、以下の様な疑問をお持ちの方が多いようです。
1.エクセルで作ると安いけどなんか心配。
2.複数人で使うからアクセスを使ってるけど、融通が利かなくて困ってるよ。
3.複数人で利用するからやっぱりアクセスじゃないと駄目かな。
4.複数拠点で使いたいからそもそもアクセスでもできないよね。
5.セキュリティーが重要なのでエクセルはアウトでしょ。
この記事ではこれらの疑問にお答えして、更に今までになかった第三の選択肢(Share Point Online)もご紹介します。
(1/5)「エクセルで作ると安いけどなんか心配」の誤解
多くの方が誤解をしていて「エクセルはグラフや表計算をするだけのソフトウェア」と思われています。
確かに、いつも見るブランクのワークシートを見ていると、これが業務システムになるとは思えないかもしれません。エクセルにはアクセスと同じ様なユーザーフォーム(UserForm)と言う機能があります。
また、「エクセルのマクロは遅い」と言う人もいます。マクロはエクセルやアクセスに自動で作業をさせる機能です。
ちなみにそれをプログラムするコンピューター言語が「Visual Basic for Application」で略してVBAとよく呼ばれます。
これは正直「エクセルのマクロ」が遅いのではなく、その多くは、プログラム記述の仕方に原因があります。
Excelマクロ開発「ExcelVBAプログラミング」において、『シート操作』、『セル操作』、『コピー&ペースト』などは、恐ろしく速度が遅いのですが、『配列処理』に代替することで、他のプログラミング言語同等の処理速度を再現できるのです。
これは、技術的なことではなく、「知っているか・いないか」だけの違いなのですが、オフィス田中さんの記事で紹介されているとおり「ExcelVBA」開発で留意すべき点を実行するだけで、普通に実践すれば、高速化が図れます。
VBA高速化テクニック – 引用 : Office TANAKA
そうではなく、メモリ内で全て集計して一度にシートに結果を出すと10万件のデータ処理も1~2秒程度で出来てしまいます。
以下は、弊社へのVBAプログラマ応募者用の課題サンプルですが、完成型を動作させることで、その速度感を体感いただけますので、是非、お試しください。
↓ダウンロード
集計ツールSample_【第14版】_10万件_CellNets完成版1秒.xlsm
https://www.cellnets.co.jp/takemojuku/download/
ExcelVBA処理スピードって速いの?
まず、実際の処理スピードや、操作感などの動作を体感いただく為、サンプルをご用意いたしました。
以下のSampleをダウンロードいただき、まずは、実際の処理速度を体感ください。
ダウンロード後の操作手順につきましては、動画にてご紹介とさせていただきます。
下記サンプルで、実際の速度を体感いただけます。
Excelマクロ(VBA)デモ動画(3分53秒)※音声付き
(2/5)「複数人で使うからアクセスを使ってるけど、融通が利かなくて困ってるよ。」
ユーザーが一人か二人の自動化プログラムは開発費が安いし、高機能に作れるエクセルの一択です。
しかし、ほとんどの業務ではもっと多くの従業員が関わるし、業務の部分的にIT化するのではなく、最初から最後までを管理できる業務システムにして、飛躍的な改善を享受したいものです。
となると、エクセル単体ではだめです。そうなるとアクセスとなりますが、以下の様な問題を聞きます。
(1)アクセスだと様々な制約があり、柔軟性の面で使わなくなってしまった。
たとえば、注意事項を促したい箇所に、「色文字を指定できない。」など
(2)顧客からのイレギュラー対応には手間がかかりすぎて使えない。
エクセルなら、イレギュラー処理も簡単にできるのに
(3)社内にアクセスを使える人材がいないので開発から、簡単なメンテも全て外注で高コスト
このような理由で実際にアクセス業務システムからエクセルに切替える企業様も少なくありません。この時はユーザーが操作する部分をエクセルで作り、エクセルとアクセスを連携させて大量のデータを保存する部分をアクセスで作る事もできるのです。
これですと、アクセスだけで作るよりも開発コストは安くなります。以上の三つのパターンをまとめたのが次の表です。
(3/5)複数人で利用するからやっぱりアクセスじゃないと駄目かな。
「外出先や複数拠点でも使いたい」そんな要望解決に関する第三の選択肢、エクセルとSharePointの連携について。
エクセルとアクセスの連携はよく使われますが、データベースにするアクセスファイルを社内の共有フォルダーに入れておく必要があります。もし、そのような環境をお持ちでないと作るのに費用が掛かります。
また最近の働き方改革によって在宅勤務や外出先からもこの業務システムを使いたいところです。その為には自社サーバーをVPNで繋ぐなど、やはり費用が掛かります。
実はアクセスを使わずに上記の初期費用を掛けずにできる方法があります。
それが業務改善ビジネスYouTuber マイク根上さんが提唱している「エクセルとSharePointの連携」です。
これはユーザーインターフェースの部分をエクセルで作り、大量データを保存するデータベースをクラウドのSharePointリストを使うのです。これですとインターネットに繋げればどこからでもその業務システムを使う事ができます。
(4/5)「複数拠点で使いたいからそもそもアクセスでもできないよね。」の疑問。
これでアクセスと違って広範囲の業務システムを作る事もできます。例えば複数の支店で同じ業務システムを使う事も可能です。
SharePointはもともと情報共有チームウェアですので、多くの人が同時に接続しても全く問題がありません。
Office 365のSharePoint Onlineとは? – 引用:SB C&S社 Office365相談センター
(5/5)「セキュリティーが重要なのでエクセルはアウトでしょ。」の疑問。
SharePointはクラウドでマイクロソフトによって安全に管理されています。
Microsoft社のセキュリティについて興味深い記事を発見したのですが、それによれば、世界で一番サイバー攻撃に会っているのはアメリカの国防省(※通称:ペンタゴン)でマイクロソフトは2位とのこと。
ですから最先端技術によってSharePointは守られているのです。またマイクロソフトのサーバーは世界中にあり、一か所が災害で破壊されてもデータは他でミラーリングで保存されていて、回復されるのでほぼ100%守られるのです。
マイクロソフトは「セキュリティ」を最優先に考える – 引用: IT Search
この様にエクセルとSharePointの連携では自社のデータを安全に保管できるのですが、更にこの手法ですとPowerAppsと言う携帯アプリを作る事もできます。
これにより、今までPCの無い現場で紙とペンだけでやっていた業務の部分も業務システムの中に入れてそのデータの検索や二次利用をできる様にもできます。エクセルとSharePointの連携手法はアクセスのみで開発するよりも安く作る事ができます。
これだけのメリットがあり、低コストで開発できるのでこれからはエクセルとSharePointの連携の一択となっていくでしょう。
参考までに、マイク根上氏の提唱する「リーンシックスシグマ」とあわせ、「なぜマイクロソフトはサイバー攻撃に強いのか?」という書籍を購入~一読してみました。
禁止するだけのセキュリティ対策だけでは何故だめなのか、など、興味深いコメントも参考になりました。
本コラム記事にご興味のある方は、ZoomまたはTeamsオンラインにて、『Microsoft SharePoint ADO接続によるExcelデータ共有(LIST機能)』のデモンストレーションもご覧いただけますので、お気軽にお問い合わせいただければ幸いです。
業務システム開発で、AccessかExcelかで迷ったら?!
業務システム開発で、AccessかExcelかで迷ったら?!
両者の違いについて、良く、お客様から聞かれることが多いので、できるだけ分かりやすく、ご説明したいと思います。
「テーブル」、「フォーム」、「クエリ」など、難しい構造や仕組みについては、他のサイトでも、多数解説されているため、セルネッツでは、Accessの技術的な構造などは割愛し、システム運用する際の相違点について、解説したいと思います。