GASでGoogle Driveの共有設定を自動で変更する方法

先生

GASでGoogle Driveの共有設定を自動化して、情報共有をもっとスマートに!

GASでGoogle Driveの共有設定を自動化するメリット

Google Apps Script(GAS)を使ってGoogle Driveの共有設定を自動化すると、時間と労力を大幅に節約できます。例えば、新しいドキュメントが作成されるたびに特定のユーザーに共有したり、プロジェクトの終了時にアクセス権を自動的に削除したりできます。

手動での設定ミスを防ぎ、セキュリティリスクを軽減することも可能です。組織内での情報共有を効率化し、コンプライアンス遵守にも役立ちます。

GASの環境設定と準備

まず、GASのスクリプトエディタを開きます。Google Driveから、新しいGoogleドキュメント、スプレッドシート、またはフォームを作成し、「ツール」>「スクリプトエディタ」を選択します。または、直接 script.google.com にアクセスしても構いません。

スクリプトエディタが開いたら、プロジェクトに名前を付けます。例えば、「Drive共有自動化スクリプト」など。

次に、Drive APIを有効にする必要があります。「リソース」>「Advanced Google services」を選択し、「Drive API」をオンにします。

共有設定を自動で変更する基本的なコード

以下のコードは、指定したファイルの共有設定を特定のメールアドレスを持つユーザーに「閲覧者」として設定する基本的な例です。

// ファイルIDとメールアドレスを設定
var fileId = 'あなたのファイルID';
var userEmail = '共有相手のメールアドレス';

function shareFile() {
  // Drive APIを使用してファイルを取得
  var file = DriveApp.getFileById(fileId);

  // ファイルを特定のユーザーに共有(閲覧者)
  file.addViewer(userEmail);

  Logger.log('ファイルが ' + userEmail + ' と共有されました。');
}

このコードをスクリプトエディタに貼り付け、fileIduserEmailを適切な値に置き換えてください。fileIdはGoogle Drive上のファイルのURLから取得できます。URLはhttps://drive.google.com/file/d/{fileId}/viewのような形式です。

実行前に、スクリプトにGoogle Driveへのアクセス許可を与える必要があります。スクリプトを実行すると、承認を求めるプロンプトが表示されるので、指示に従って許可してください。

共有設定のオプション:役割の変更と権限の削除

共有するユーザーの役割を変更するには、addViewer()の代わりにaddEditor()を使用します。addEditor()を使用すると、指定したユーザーはファイルの編集権限を持つようになります。

// 特定のユーザーに編集権限を付与
file.addEditor(userEmail);

特定のユーザーの共有権限を削除するには、removeViewer()またはremoveEditor()を使用します。

// 特定のユーザーの閲覧権限を削除
file.removeViewer(userEmail);

// 特定のユーザーの編集権限を削除
file.removeEditor(userEmail);

フォルダ全体の共有設定を自動化する

個々のファイルだけでなく、フォルダ全体の共有設定を自動化することも可能です。以下のコードは、指定したフォルダ内のすべてのファイルに対して、特定のユーザーに共有設定を行う例です。

// フォルダIDとメールアドレスを設定
var folderId = 'あなたのフォルダID';
var userEmail = '共有相手のメールアドレス';

function shareFolderFiles() {
  // Drive APIを使用してフォルダを取得
  var folder = DriveApp.getFolderById(folderId);

  // フォルダ内のすべてのファイルを取得
  var files = folder.getFiles();

  // 各ファイルに対して共有設定を行う
  while (files.hasNext()) {
    var file = files.next();
    file.addViewer(userEmail);
    Logger.log(file.getName() + ' が ' + userEmail + ' と共有されました。');
  }
}

folderIdを適切な値に置き換えてください。フォルダIDはフォルダのURLから取得できます。URLはhttps://drive.google.com/drive/folders/{folderId}のような形式です。

エラー処理とログ出力

スクリプトの実行中にエラーが発生した場合に備えて、エラー処理を追加することをお勧めします。try...catchブロックを使用して、エラーを捕捉し、ログに出力することができます。

try {
  // ファイル共有の処理
  file.addViewer(userEmail);
  Logger.log('ファイルが ' + userEmail + ' と共有されました。');
} catch (e) {
  Logger.log('エラーが発生しました: ' + e);
}

ログは、スクリプトエディタの「表示」>「ログ」から確認できます。

参考リンク

まとめ

GASを使用することで、Google Driveの共有設定を自動化し、業務効率を向上させることができます。この記事で紹介したコードを参考に、ぜひ自動化にトライしてみてください。共有設定の自動化は、情報共有の効率化だけでなく、セキュリティ強化にも繋がります。また、エラー処理やログ出力を適切に行うことで、より安定した運用が可能になります。