GASを使用して、A列のフォルダに対してD列のメールアドレスに共有権限を設定するスクリプト例を作成します。
以下のような流れでで、指定されたフォルダに対して対応するメールアドレスに共有権限を付与することができます。
指定されたフォルダに対して対応するメールアドレスに共有権限を付与する
指定されたフォルダに対して対応するメールアドレスに共有権限を付与することができます。
function shareFoldersWithEmails() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getRange("A1:D" + sheet.getLastRow()).getValues();
data.forEach(row => {
const folderName = row[0];
const email = row[3];
// フォルダを検索
const folders = DriveApp.getFoldersByName(folderName);
if (folders.hasNext()) {
const folder = folders.next();
// フォルダに編集権限を付与
folder.addEditor(email);
Logger.log(`フォルダ "${folderName}" を ${email} と共有しました。`);
} else {
Logger.log(`フォルダ "${folderName}" が見つかりませんでした。`);
}
});
}
これで、スプレッドシート上のA列のフォルダに対して、D列のメールアドレスのユーザーに一括で権限を付与することができます。
スクリプトの動作の流れ
このスクリプトの動作は以下の通りです。
- アクティブなシートから、A1:D列のデータを取得します。
- 取得したデータの各行に対して以下の処理を行います。
- A列からフォルダ名を取得します。
- D列からメールアドレスを取得します。
DriveApp.getFoldersByName()
を使用して、指定された名前のフォルダを検索します。- フォルダが見つかった場合:
addEditor()
メソッドを使用して、指定されたメールアドレスにフォルダの編集権限を付与します。- 処理結果をログに記録します。
- フォルダが見つからなかった場合:
- その旨をログに記録します。
コードの解説
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getRange("A1:D" + sheet.getLastRow()).getValues();
これらの行で、現在のシートを取得し、A1からD列の最後までのデータを2次元配列として取得します。
data.forEach(row => {
const folderName = row[0];
const email = row[3];
各行のデータを処理し、フォルダ名(1列目)とメールアドレス(4列目)を取得します。
const folders = DriveApp.getFoldersByName(folderName);
if (folders.hasNext()) {
const folder = folders.next();
指定された名前のフォルダをGoogle Drive内で検索し、見つかった場合は最初のフォルダを取得します。
folder.addEditor(email);
フォルダが見つかった場合、指定されたメールアドレスのユーザーにそのフォルダの編集権限を付与します。
javascriptLogger.log(`フォルダ "${folderName}" を ${email} と共有しました。`);
処理が成功した場合、ログにメッセージを記録します。
} else {
Logger.log(`フォルダ "${folderName}" が見つかりませんでした。`);
}
フォルダが見つからなかった場合、その旨をログに記録します。
注意点
注意点:
- このスクリプトを実行する前に、必要な権限(ドライブへのアクセスなど)を付与する必要があります。
- 大量のフォルダに対して処理を行う場合、Googleの制限に注意してください。必要に応じて、処理を分割するなどの対策が必要になる場合があります。
- フォルダ名が重複している場合、最初に見つかったフォルダに対してのみ処理が行われます。
- デフォルトでは編集権限を付与していますが、必要に応じて
addEditor()
をaddViewer()
に変更することで、閲覧権限のみを付与することもできます。 - 実行前に、テスト用の少数のデータで動作確認を行うことをおすすめします。
まとめ
このスクリプトを使用することで、指定されたフォルダに対して対応するメールアドレスに共有権限を効率的に設定することができます。