【GAS】メールアドレス一覧の取得
どうも、開発部のSです。
今回はGoogle App Scriptについて紹介したいと思います。
以前、社員情報を管理するためにGoogle スプレッドシートと
Google App Scriptを使用しました。
その際に社員全員のメールアドレスを取得するスクリプトを
作成したので紹介します。
【スクリプト作成方法】
1. googleスプレッドシートのツールタブにあるスクリプトエデ ィタをクリックします。
2. 下記の[①スクリプト]を記載します。
3. 実行タブから[①スクリプト]のメソッド名( GetMailingList)を選択してください。
※ スプレッドシートに図形を作成してスクリプトを割り当てると、
作成した図形をクリックするだけでスクリプトが実行されます。
また、初回実行時は承認を求められるので許可してください。
[①スクリプト]
function GetMailingList() {
// 貼り付けたい位置を指定
var StartColumn = A;
var StartRow = 1;
// 取得したいグループアドレスを指定
var Address = “all@example.com“;
// メールアドレス一覧を取得
var group = GroupsManager.getGroup( Address).getAllMembers();
var cnt = 0;
var SheetLastRow = group.length;
// メールアドレスを記載
for (var i = 0; i < SheetLastRow ; i++){
Sheet.getRange(StartColumn + (i + StartRow) ).setValue(group[cnt]);
cnt++;
}
}
GroupsManagerを使用するには管理者権限が必要なの でご注意を。
ただ、権限があれば、全メールアドレスを取得する他にも、
ユーザを作成したり、いろいろ出来るみたいですね。
※2015年05月04日追記
いつの間にかGoogleの仕様が変わってGroupsMana gerが使えなくなっていました。
代わりにGroupAppを利用すれば同じような機能が使えるみ たいです。
上記スクリプトを下記の通りに入れ替えれば、 以前と同じ動作を行います。
-修正前-
アドレス一覧取得
var group = GroupsManager.getGroup( Address).getAllMembers();
アドレス取得
Sheet.getRange(StartColumn + (i + StartRow) ).setValue(group[cnt]);
-修正後-
アドレス一覧取得
var group = GroupApp.getGroupByEmail( Address).getUsers();
アドレス取得
Sheet.getRange(StartColumn + (i + StartRow) ).setValue(group[cnt]. getEmail());