Skip to content

Instantly share code, notes, and snippets.

@W-Yoshida
Last active July 15, 2021 10:57
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save W-Yoshida/bd970dd76044ecfe317375b228bb96dc to your computer and use it in GitHub Desktop.
Save W-Yoshida/bd970dd76044ecfe317375b228bb96dc to your computer and use it in GitHub Desktop.
Googleグループのメンバを出力するGAS

Googleグループのメンバーを出力するGAS

補足

自社ドメイン外のメンバーが含まれる場合は、@以前をマスクするようにしています。

コード中の"example.com"を自社ドメインに書き換えてお使いください。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
//実行メニューを作成
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu("GAS実行");
menu.addItem("Googleグループメンバー出力", "exportGoogleGroupMembers");
menu.addToUi();
}
function exportGoogleGroupMembers() {
//対象ドメイン
var domainName = 'example.com';
//取得するグループの最大数(デフォルトは200)
var maxResults = 500;
//シートをクリア
sheet.clear();
var values = [];
//ヘッダー追加
values.push([
"メールアドレス",
"グループ名",
"説明",
"メンバー数",
"メンバー",
]);
//グループ一覧の取得
var groupsList = AdminDirectory.Groups.list({domain: domainName, maxResults: maxResults});
if(groupsList) {
for(var i = 0; i < groupsList.groups.length; i++){
var value = [];
//グループの基本情報を取得
value.push(groupsList.groups[i].email); //メールアドレス
value.push(groupsList.groups[i].name); //グループ名
value.push(groupsList.groups[i].description); //説明
value.push(groupsList.groups[i].directMembersCount); //メンバー数
var strMembers = '';
//グループのメンバーを取得
var members = AdminDirectory.Members.list(groupsList.groups[i].email).members;
if(members != null)
{
for (var j = 0; j < members.length; j++){
//社外ドメインのアドレスの場合、ドメイン部以外はマスクする
if(members[j].email.match(/@example.com/)){
strMembers += members[j].email + '\r\n';
}else{
var splitEmail = members[j].email.split('@');
strMembers += '*****@' + splitEmail[1] + '\r\n';
}
}
}
value.push(strMembers.trim());
values.push(value);
}
//取得したデータをスプレッドシートにセット
sheet.getRange(1, 1, groupsList.groups.length + 1 , 5).setValues(values);
sheet.getRange(1, 1, groupsList.groups.length + 1 , 5).setVerticalAlignment('top')
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment