私の会社の購買発注システムを再設計しています。私は、完全に自動化されたプロセスの近くにプロセスを作り、1か所に住みたいと思っています。私はサプライヤが引用符(値段)を入力してタブを編集する必要があるビットから離れて多くの問題を抱えていませんでした。Googleスプレッドシートのタブを非表示にする
問題は他のサプライヤー(競合他社)のタブを見ることができ、これが起こりたくないということです。
私はアプリスクリプトの中間体なので、自分のやり方を見つけ出し、現時点では機能する小規模なスクリプトを作成できますが、スケールを大きくするとコードに問題が生じることが心配です。
以下のスクリプトは、有効なユーザーを確認し、ユーザーの電子メールアドレスに応じてタブを非表示にします。これはすべてうまいですが、各サプライヤ(5人中)が他の4つの売り手タブを見ることができないようにしなければならない大きなスケールでは、問題が発生します。
function validUsers() {
var adminUsers = ['[email protected]'];
var Users = ['[email protected]'];
if (adminUsers.indexOf(Session.getEffectiveUser().getEmail()) >= 0) {
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Seller1").showSheet()
}
if (Users.indexOf(Session.getEffectiveUser().getEmail()) >= 0) {
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Seller1").hideSheet()
}
}
基本的には、私がやっているよりもまっすぐ進む方法か良い方法がありますか? 私が望むのは、どの売り手がシートを編集しているかに応じて、5つの売り手タブのうち4つを隠すことです。したがって、Seller1は、実際には5つのSellerタブがあるSeller1タブのみを表示します。
これは本当にスプレッドシートを行うように設計されているものではありません。現在のインフラストラクチャを維持したい場合は、スプレッドシートを直接見ることなく、各ユーザーが独自のフロントエンドを持つ[Webアプリケーション](https://developers.google.com/apps-script/guides/web)を作成することを検討してください。 –
だから、各ユーザに自分のドキュメントのインスタンスを示すメニューシステムを構築することができました。 –