ExcelをデータソースにAppSheetでアプリを作成する
Google Workspaceを導入してるけれど、メインは別にあるMicrosoft365という組織も結構あります。また、M365は無いけれどGoogle Drive上にあるファイルの殆どが結局ExcelでローカルでExcelを使って仕事してるというケースも。
そんな環境でもAppSheetは活躍出来ます。Googleスプレッドシートを使わずExcelをデータソースとしてアプリを構築してみた検証結果のまとめになります。
目次
今回利用するサンプル等
- Excel Writer - AppSheet
- データソースのExcelシート - OneDrive
今回はいつもと違い、GoogleスプレッドシートではなくMicrosoft365上のOneDriveに配置したExcelファイルに対して、AppSheetから接続してアプリを作成します。アプリのアイコンもOneDrive上に配置しています。
OneDriveだけじゃなくSharepointにも対応している為、データソースがExcelであればどちらかに配置しておけば読み書きが可能です。故にMicrosoft365な会社であっても単独でAppSheetは導入が可能なので、そういった選択肢も十分有りなのではないか?と思います。
※SharepointやOneDrive以外にもDropboxやBoxにも対応してるので、Excelファイルであればオッケーです。
Excelを利用する利点
Excelが使えるという利点
会社としてGoogle Workspaceは導入してるけれど、現場の仕事としては別途ExcelがPCにインストールされておりそちらで仕事してるというケースは結構あると思います。また、Microsoft365環境であっても別途Google Workspace Enterprise Essentialなどを導入して併用しているというケースも。
こういった組織の場合あくまでも主たる業務アプリはExcelであり、そしてローカルではPower Automate for Desktopで自動化をしていたり、Power Automateを使って処理をしていたりすることでしょう(Google WorkspaceにはRPAが存在しない)。そうした組織ではPower Appsで作るしか無いのか?といったら、AppSheetを導入することでAppSheetからExcelを素材にアプリが作れます。
故に現在の環境を大きく変えることなく、まずは既存のExcel中心の作業環境のまま利便性向上でAppSheetを使うことが可能です。ユーザはMicrosoftアカウントでログインして運用が出来ますので、導入の抵抗感は少ないのではないかと思います。もちろん、Excelファイルをそのまま使ってるのでPower Automateによる自動化は継続して利用可能です。
※Google Workspace併用時は、OneDrive上のExcelにはGraph APIで読み書きが可能です。またBox上にある場合にはBox for Google Workspaceが利用可能です。
図:Excelが使えるメリットは大きい
Entra IDアカウントでも使える
AppSheet + Excelでのアプリ制作において、制作者はAppSheetライセンスが必要です。契約ドメインはMicrosoft365で使ってるドメインになるかと思います。
一方Microsoft365の場合、ユーザはEntra IDで管理しますがMicrosoft365ライセンスを割り当てていないアカウントというのも存在します。M365のサービスは使えないけれどアカウントとしては活用し、Azure上の別のサービスなどで使っていたり認証でだけ使ってる等など。
このEntra IDアカウントでM365アカウントの人が作ったアプリは使えるのか?を試してみました。後述で紹介しますがAppSheet側はログインプロバイダはAnyかMicrosoftにしておく必要があります。また自分のテナントでは二段階認証がオンになっています。
- AppSheet上で招待し、アプリの使用およびプロジェクト編集権限を与えられます
- 招待された側のEntra IDアカウントの場合ライセンス表記はFree版となります。
- プロジェクトオーナーはAppSheetライセンスがあるので、招待された側はそのPJに関してはデプロイが可能です。
- Entra IDアカウントでだけPJを作る場合には、Free版の制約を受けることになります。
故に主たる開発者にだけAppSheetライセンスを付与し、Entra IDアカウントはライセンス無しでアプリの利用や開発への参加が可能になります。開発はせずとも例えば外部のBPさんに対して業務上で使うアプリとして提供し使ってもらうなどが自社アカウントで出来るので、ある程度アプリを充実させておけば、BYOD運用や別途M365ライセンス付与などせずに済むのではないかと思います。
※デプロイした場合通常オーナーの権限で動作するので、M365ライセンスを持たないEntra IDアカウントでもアプリを通じてExcelファイルの読み書きが可能です。
図:Entra IDでアカウントを作成する
図:招待して編集権限を付けることも可能
図:ライセンス表記はFreeとなる
Power Appsよりも楽に作れる
Power AppsはMicrosoft365ライセンスを持っているユーザに対して無償提供されている、AppSheetのライバルたるノーコードアプリ開発環境です。
ただAppSheetと比較すると難解でハードルが高いと感じる。またバックエンドの処理はPower Automateを利用して構築することになります。また、Microsoft365ライセンスを持っていないと使えない為、AppSheetと異なり自宅でフリー環境を使って自分で学習ということが出来ません。このあたりはKintoneも同様ですね。
クローズドなサービスであるためウェブ上での知見も非常に少なく、Google Trendsを見ても現在は低調です。オープンで知見があるかどうか?がこの世界では非常に重要であるため、ちょっと手が出しづらい。また、Microsoft365→Google Workspaceへ乗り換え時に、Power Appsで作成してしまったアプリというのは、Google Workspace上でAppSheetやGASでフルスクラッチで作り直しが必要です(つまり変換して持って行くことは出来ません)。
この場合、Google Workspaceへ移行したくてもベンダーロックインされているため、それを理由として移行が難しくなってしまうわけです。過去にこういった事例ではNotes→他の環境へ移行でも見た光景ですね。
図:FileMakerよりも下というのが・・・
Google Workspaceに移行しやすい
前述にもあるように、現在のMicrosoft365環境にAppSheetを導入してアプリを作っている場合、AppSheetはGoogleのプロダクトではありますが、独立したサービスとなっていますのでそのままGoogle Workspace環境で持っていくことも可能です。
データソースはOneDriveやSharepoint上にあると思われるので、Google Driveへ移行させて各アプリ上で再度テーブルとして追加し直しやRefなどの設定し直しなどは必要ですが、小規模で済みます(但し対象のExcelに対して別途Power Automateなどで自動化してる場合はそちらはPower Apps同様に持って行くことは出来ません。Google Apps Scriptなどで構築が必要です)。
Power Automate for DesktopでローカルRPAを使っての自動化については、このプランだけを別途契約し直せば継続してRPAとしては継続利用は可能です。Google WorkspaceにもPC版Google Driveがありますので、Power Automate for Desktopが参照するファイルの場所を変更する必要はありますが、同じExcelファイルなので手直しは最低限で済みます
実際に作ってみる
データソースを追加する
実際にOneDrive上にExcelファイルを配置してそのファイルに対してAppSheetを接続しアプリを作ってみます。以下の手順で接続します。
- AppSheetプロジェクトを開く
- 左サイドバーのDataをクリックし、上部のDataの横にある+ボタンをクリックする
- Add DataではNew Sourceをクリックする
- Add a new data sourceではMicrosoftをクリックします
- Microsoftアカウントでログインする
- すると、Add Dataにソースとして登録されるのでクリックする
- Choose a Sheet/Tableというダイアログが出てくるので、OneDriveをクリックし、対象のファイルを選択する
- Create a new tableが出てくるので、Worksheet Name/Qualifierで取り込むシート名を選択します
- Dataに無事にテーブルとして追加されました
同じ手順で別のシートがあれば登録しておきましょう。登録さえ完了してしまえば後は、AppSheet上のお話になるので普通に開発を続けることが可能です。
ちなみに、Google Drive上のExcelのファイルの場合は、データソース追加時にGoogle Sheetsを選んでExcelファイルを選択すれば追加することが可能です。
図:OneDrive上にExcelを配置しておく
図:データソース登録する
図:テーブルとして追加する
設定を変更しておく
自分はGoogle Workspaceアカウントを使ってる為、Coreライセンスでプロジェクトを作っていますが、AppSheetでプロジェクトを作成した時のプロバイダが自動的にセットされています(自分の場合はGoogleがセットされている)。よって、このままだとM365ユーザを招待しても相手はGoogleアカウントを持っていないのでログインして使うことが出来ません。
よって、以下の手順でログイン時のプロバイダを変更しておく必要があります。
- AppSheetプロジェクトの左サイドバーのSecurityをクリックする
- Require sing-inにて、Authentication providerを見つける
- 他の利用者に合わせてここを「Any Provider」とするか「Microsoft」を選択します
- 右上のSAVEボタンをクリックして保存します。
これで相手はアプリ本体もしくはプロジェクトを開く時に自分のMicrosoftアカウントもしくはEntra IDアカウントでログインして入ることが出来るようになります。
図:プロバイダ選択をしておきましょう
プロジェクトをコピーすると・・・
Entra IDアカウントはM365ライセンスが無いです。この時プロジェクト編集権があってコピーを実行するとどうなるのか?といったら、Freeライセンスとして自身のAppSheetの領域にコピー出来ます。但し、Excelファイルはコピーされず、AppSheet DBが作られてデータはそこに蓄積する形でコピーされるようになります。
一方自分はGoogleアカウントもありMicrosoftアカウントも持ってる状態ですがこの場合、Save app toを選ぶことが出来、Googleを選べばGoogle Driveに、Microsoftアカウントを選べばOneDrive/Sharepoint上にディレクトリが作られて、Excelファイルのままコピーすることが可能になります。
図:Entra IDアカウントでコピーしようとしてる様子
図:ライセンスがあるとOneDrive上にコピー出来る
フリーのMicrosoftアカウントは使えるのか?
前述まではMicrosoft365アカウントおよびEntra IDのアカウントで検証をしていました。一方で自分の場合個人用のMicrosoftアカウントも持っています。このアカウントを招待して参加させたり、プロジェクトのコピーは出来るのか?を検証してみました。
結果としては
- プロジェクトに参加させて編集権限を与えることは可能です。
- AppSheetのライセンス形態はFree版となります。
- 個人用アカウントでプロジェクトをコピーしようとすると、Entra IDの場合と異なりAppSheet DB以外にもOneDriveを選ぶことが可能で、OneDriveにフォルダが作られてExcelファイルがコピーされます。
- もちろんアプリとして使った場合、オーナーの権限を通じてMicrosoft365側のExcelの読み書きが可能です。
業務では個人用のMicrosoftアカウントを参加させるということはあまり無いとは思いますが、出来るかどうかで言えば「出来る」ということが検証できました。逆に完全個人の場合、Googleアカウントが無くてもMicrosoftアカウントがアレばAppSheetでアプリ開発が単独で可能と言うことになります。
※ちなみに自分のMicrosoftアカウントは大昔のhotmail.com時代のアカウントですが問題なく作業が出来ました。
図:OneDriveにコピーが可能です。