|
var ss = SpreadsheetApp.getActiveSpreadsheet(); |
|
var sheet = ss.getSheets()[0]; |
|
|
|
//実行メニューを作成 |
|
function onOpen() { |
|
var ui = SpreadsheetApp.getUi(); |
|
var menu = ui.createMenu("GAS実行"); |
|
menu.addItem("Googleグループ一括作成", "createGoogleGroup"); |
|
menu.addToUi(); |
|
} |
|
|
|
function createGoogleGroup() { |
|
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 |
|
{ |
|
//Groupの作成(コメントアウトすることでGroupのプロパティ更新のみ実行可能) |
|
AdminDirectory.Groups.insert({email: row[0], name: row[1], description: row[2]}); |
|
|
|
//Groupのプロパティ更新 |
|
var group = AdminGroupsSettings.Groups.get(row[0]); |
|
group.whoCanViewMembership = "ALL_MEMBERS_CAN_VIEW"; |
|
group.whoCanViewGroup = "ALL_MEMBERS_CAN_VIEW"; |
|
group.whoCanPostMessage = "ANYONE_CAN_POST"; |
|
group.whoCanModerateMembers = "OWNERS_AND_MANAGERS"; |
|
group.whoCanJoin = "CAN_REQUEST_TO_JOIN"; |
|
group.whoCanLeaveGroup = "NONE_CAN_LEAVE"; |
|
group.whoCanDiscoverGroup = "ALL_MEMBERS_CAN_DISCOVER"; |
|
group.isArchived = "true"; |
|
group.spamModerationLevel = "ALLOW"; |
|
AdminGroupsSettings.Groups.patch(group, row[0]); |
|
|
|
result = "Success"; |
|
}catch(e){ |
|
result = "Error:" + e; |
|
} |
|
|
|
//実行結果をResult列にセット |
|
sheet.getRange(row.rowNumber, 4).setValue(result); |
|
|
|
} |
|
} |
|
} |