Skip to content

Instantly share code, notes, and snippets.

@W-Yoshida
Last active January 16, 2020 08:50
Show Gist options
  • Save W-Yoshida/c4cdfe9ad4c475f4caf23d530fe1a41c to your computer and use it in GitHub Desktop.
Save W-Yoshida/c4cdfe9ad4c475f4caf23d530fe1a41c to your computer and use it in GitHub Desktop.

Googleグループのメンバーを一括変更するGAS

使い方

以下のフォーマットのスプレッドシートを作成し、変更内容を入力。

Email Action Member Result
group-1@example.com add user-1@example.com
group-1@example.com remove user-2@example.com

※Resultセルに値が入っているレコードは無視されるので、空欄にしておく

※[Action]にはaddremoveを指定

必要な情報を入力後、スプレッドシートの「GAS実行」メニューから実行。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
//実行メニューを作成
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu("GAS実行");
menu.addItem("Googleグループメンバー変更", "modifyGoogleGroupMember");
menu.addToUi();
}
function modifyGoogleGroupMember(){
var lastColum = sheet.getLastColumn();
var lastRow = sheet.getLastRow();
var startRow = 2;
var numRows = lastRow - 1;
var dataRange = sheet.getRange(startRow, 1, numRows, lastColum);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
row.rowNumber = i + 2;
//Result列がブランクであれば処理を実行
if (!row[3]) {
var result = "";
try
{
if(row[1] == "add")
{
result = AdminDirectory.Members.insert({email: row[2], role: "MEMBER"}, row[0]);
result = "Success";
}else if(row[1] == "remove")
{
result = AdminDirectory.Members.remove(row[0], row[2]);
result = "Success";
}else{
result = "Error:Actionパラメータに誤りがあります。add/removeのいずれかをセットしてください。"
}
}catch(e){
result = "Error:" + e;
}
//実行結果をResult列にセット
sheet.getRange(row.rowNumber, 4).setValue(result);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment