道具としてのExcel活用
Excelから見た、AzureとSharepointの違い
広がるSharepointの導入
Office201x から急速に移行が進む、Microsoft365(Office365)
いままでOfficeソフト(ExcelやAccess等)を使っていた方の大半は、2016や2019といった西暦のバージョンで示される製品でしたが、このところMicrosoftが前面に出しているのは、「xxx365」というバージョンです。
普通に使う分には、「365で契約しておくと、2016で導入したExcelが自動的に2019相当にUpdateされる」ようなイメージでとらえることができます(厳密には、微妙に構成が異なります)。
従来の「西暦バージョン」が買い取りだったのに対し、365シリーズはいわゆる「サブスク」モデルが前提のため、月額(または年額)での「レンタル」契約となります。一度投資したら未来永劫使える方が感覚的には安上がりだったのですが、最近のコロナ禍に起因する「オンラインミーティング」ブームにより、にわかにTeams(チームス)が注目されるようになり、これが使える365への移行が怒涛の如く進んでいるようです。
当社の顧客でも、多くが365へ移行しています。
Microsoft365の普及で利用が広がったSharepoint
(読み方は「シェアポイント」)
365は、契約プランにより使えるサービス(アプリケーション)の種類が変わりますが、基本構成でExcelなどの従来のOfficeソフトやTeams、OneDriveが使えるようになります。
そして、これらのバックグラウンドにある共通インフラが、従来SharepointServiceと呼ばれていたもので、実は多くの方が気づかないうちに、Teamsなどの利用を通じてすでに利用しています。
それでは、Sharepointとは何かというと、公式サイトでは「モバイル対応のインテリジェントなイントラネット」・・・ほぼ英語なので、逆に何を言っているかわかりませんね。とにかく機能が多様すぎて、一言でどのようなものかを伝えるのが難しい代物となっています。
敢えて帰納法的に例を挙げて説明を試みます。
Teamsで共有したファイルや録画記録はSharepointへ
Teamsでは、グループ単位でファイルの共有ができます。この機能を使って、特定目的のためのプロジェクト内でExcelなどのファイルを共有することができます。
また、Teamsで録画(録音)ができますが、これも実態ファイルはグループ単位で共有されます。
それでは、これらのファイルがどこに保存されるかといえば、実は裏で自動的に設定されているSharepoint内の環境なのです。
このように、SharepointとはExcelなどのファイルを共有するしくみ(インフラ)といえます。
クラウドストレージ、Azureとはなにか
365シリーズは比較的最近のサービスですが、Microsoftには昔からAzure(読み方は、アジュール)というクラウド型ストレージ(ファイルやデータベースなど)サービスがありました。
暫くは、多人数で共有する環境といえば、Azureしか選択肢がなかったのです。
もともとは、SQL Serverというデータベースサーバのクラウド版だったのですが、次第にファイルの格納スペース(OneDrive同様のサービスを複数自分で作れます)や仮想ネットワーク、仮想マシン(最近始まったWindows365同様のしくみを自分でつくれます)などを設定できるように進化した結果、ハードウェアを一切持たずにWebサーバなどを構築して一般ユーザにWebサービスを利用しつつ、データを社内システムと連携する、といった使い方が気軽にできるようになってきました。
こちらも、データを「共有するしくみ」といえます。
AzureとSharepointは何が違うか
いずれも「共有」がキーワードになることから、同様のサービスと思われているようですが、できることや使い方が全く異なります。
まず、Sharepointですが、例えば1つのExcelのBookを大勢で共有しながら登録するといった使い方はできますが、1つのExcelBookに顧客台帳を持たせておき、他のBookから参照させるような使い方には向いていません。
また、Sharepoint上に置いたExcel上でマクロ(VBA)を動かすことはできますが、1人が「全ての文字列を青くする」マクロを動かして、ほぼ同時に他の人が「全ての文字列を赤くする」マクロを動かすと、僅差で後から書いた方のみが有効になるなど、実態として全く意味のない挙動をするようになります。またUndo(やり直し)にも相当制限がかかるため、慣れないとかなり戸惑うでしょう。
一方、Azureですが、基本的にはデータベース(DB)となるので、DB内に蓄積したデータをExcelやAccessで呼び出して使うようなイメージになります。例えば、Azure上に顧客台帳を持たせておけば、他のBookから同時に参照させても負荷や運用上の矛盾は生じません。
但し、Azureといっても、基本的にデータベースとしての挙動となるため、ExcelやAccessから直接更新(書き込み)はできません。必ずSQLという操作言語を使って更新などの処理を行うことになるため、マクロなどで設定が必要になります。
別の言い方をすれば、マクロ(VBA)を併用すれば、ExcelやAccessから直接DBを更新したり、指定した条件に合致したデータのみを取り出して表示させることができるので、母集団が1000万件あろうとも、Excelだけで処理が可能になります。
このように、「共有」といっても、Sharepointではファイルを直接全員で共有するのに対して、Azureではデータの置き場として共有されているだけで、それをどこに引用するか、どのタイミングで書き込むかは個別のロジック(アプリケーション)に依存することになります。
使い方から見た、AzureとSharepointの違い
もう少しわかり易くするために、利用シーンから両者の違いを見てみましょう。
受注情報をExcelに登録し、以後仕入れの手配、出荷情報、入金消込・・・といった情報を追記するようなビジネスモデルの場合、Sharepointで実現しようとすると1シートに全てを表現しないと共有が困難です。
一方、Azureの場合、受注情報と仕入れ情報、出荷に至るまでのステータス(状況)記録・・・などは全て別Bookに書き込むイメージで表現ができるため、データベース側である程度処理を吸収してくれます。このため、受注を登録するExcelシート、仕入れが必要な材料を登録するExcelシート、請求と入金を記録するシート・・・のように別個に構成することができるため、入力画面が使いやすくなります。また、Azure(DB)への書き込みに当たって、他の人の更新結果と矛盾がある場合は更新させない「排他制御」ができます。
同じことをSharepointでやろうとすると、複数のBook間の同期を整合性を担保しながら行うためにマクロを併用することになりますが、排他制御ができないため、結果の整合性が担保できなくなってしまいます。
1人の担当者が全て行う場合、担当者内で整合性をとれば済むかもしれませんが、全国の支店で受注情報を登録しつつ、営業担当者が出先で状況報告を登録するような使い方をすると、破綻をきたします。
Sharepointは、「ファイルの共有」機能の延長
もともと、Excelには1つのBookを複数名で同時に開いて保存ができる「ファイルの共有」機能があります。
Sharepointは、これを更に拡大して、従来の共有ではできなかったこともできるようになり、かつスピードも向上しています。
この場合、データとロジック(関数やマクロなど)、更に入力画面や出力帳票類(シート)が一体構成となっているのが特徴です。
一方のAzureでは、ロジックや画面・出力物は持ちませんので、データを整合性を保ちつつ格納し、高速で取り出せるように特化したもの、といえます。
Excelで更に活用できる、Azure/Sharepoint
AzureもSharepointもただのインフラですから、単独ではほとんど実用になりません。他のサービスと組み合わせることで、本領を発揮します。
例えば、身近なExcelを活用して簡単な業務支援ツールを作ったとして、従来は利用者全員に配布して使っていたので、個々人が創意工夫をし始めるとバリエーションがどんどん増えてしまう弊害がありました。これをSharepoint上に置くと、配布しなくても利用でき、しかも同時編集もストレスなくできるようになります(目的によっては、逆効果かもしれませんが)。あとは、フォルダの権限設定により、皆で共有するファイルを上書きできる人を制限しておけば、創意工夫バージョンが増殖することを防げます。
また、Excelのマクロを活用してAzureと接続すれば、日々の受注情報を登録するシートからは受注情報のみを更新、爾後の契約情報や案件の進捗情報を刻々と登録するシートからステータス関連情報のみを更新、といった具合にそれぞれの目的に応じた最適な業務設計ができるようになり、しかも全国どの支店からも同時利用ができるようになります。もちろん、月の受注が100万件を超える!ような事態になっても、Excel上には条件指定により絞り込まれた「〇月△日のxxxの受注分」データのみを引用する、といったことができるようになります。