見出し画像

ショートカット一括作成! / Google ドライブ

前回の続きです!

上記に、ショートカット作成を追加してみます!
ショートカットを作成したいフォルダの一覧を取得して、ショートカット作成先に指定したフォルダ内に作っていきます!

[0] Google スプレッドシート の準備

下記をクリックして新規作成してください!

そして、シート名を フォルダ一覧 としてください。

事前準備として、このようにしてください!

この後、B1 と F1 のセルにフォルダのIDを入れていきます!
(色は別に意味はありません!笑)

[1] スクリプトの準備

次のコードをコピーしてください!

function onOpen() {
  SpreadsheetApp.getActiveSpreadsheet().addMenu('取得メニュー', [
    { name: 'ファイル一覧取得', functionName: 'driveFolder' },
    { name: 'ショートカット作成', functionName: 'createFolders' },
  ]);
}

function createFolders() {
  // スプレッドシートを取得
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  // シートを取得する
  var sheet = spreadsheet.getSheetByName('フォルダ一覧');

  // スプレッドシートから名前とフォルダ名を取得する
  var data = sheet.getDataRange().getValues();

  // シートからデータを取得する
  var parentFolderId = sheet.getRange(1, 6).getValue();

  // 親フォルダを指定
  var parentFolder = DriveApp.getFolderById(parentFolderId);

  // スプレッドシート内のデータを繰り返し処理する
  for (var i = 2; i < data.length; i++) {
    var sourceFolder = data[i][4];

    // ショートカットを作成
    var shortcut = DriveApp.createShortcut(sourceFolder);

    // ショートカットをフォルダに移動
    parentFolder.addFile(shortcut);
    // 作成したフォルダのURLを記録する
    sheet.getRange(i + 1, 7).setValue(shortcut.getUrl());
  }
}

function driveFolder() {
  // Google ドライブを取得する
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  // シートを取得する
  var sheet = spreadsheet.getSheetByName('フォルダ一覧');

  // シートからデータを取得する
  var folderId = sheet.getRange(1, 2).getValue();

  // Google ドライブのフォルダを取得する
  var folder = DriveApp.getFolderById(folderId);

  // そのフォルダ内のフォルダを取得する
  var subFolders = folder.getFolders();

  // フォルダの一覧を出力する
  while (subFolders.hasNext()) {
    var folfer = subFolders.next();
    sheet.appendRow([folfer.getDateCreated(), folfer.getLastUpdated(), folfer.getName(), folfer.getUrl(), folfer.getId(), folder.getSharingAccess()]);
  }
}

貼り付けたら、次に「サービス」ボタンをクリックします。

Drive API というものをクリックして、右下の「追加」をクリックしましょう!

それでは 💾(保存)をしてください!

今回は、onOpen() にあるように、メニューの追加もしてみました!

function onOpen() {
  SpreadsheetApp.getActiveSpreadsheet().addMenu('取得メニュー', [
    { name: 'ファイル一覧取得', functionName: 'driveFolder' },
    { name: 'ショートカット作成', functionName: 'createFolders' },
  ]);
}
このようなメニューが表示されます

38行目から下にあるスクリプトがフォルダ一覧を取得です!

function driveFolder() {
  // Google ドライブを取得する
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  // シートを取得する
  var sheet = spreadsheet.getSheetByName('フォルダ一覧');

  // シートからデータを取得する
  var folderId = sheet.getRange(1, 2).getValue();

  // Google ドライブのフォルダを取得する
  var folder = DriveApp.getFolderById(folderId);

  // そのフォルダ内のフォルダを取得する
  var subFolders = folder.getFolders();

  // フォルダの一覧を出力する
  while (subFolders.hasNext()) {
    var folfer = subFolders.next();
    sheet.appendRow([folfer.getDateCreated(), folfer.getLastUpdated(), folfer.getName(), folfer.getUrl(), folfer.getId(), folder.getSharingAccess()]);
  }
}

これを起動させるために、B1 のセルにショートカットを作成したいフォルダが入っている フォルダのID を貼り付けます!

例えば、↓のように、testFolder というフォルダの中に入っているフォルダたちのショートカットを作りたいとき、

この testFolder のID をコピーします。

フォルダのIDは、Google ドライブ のフォルダを開いた時のURLからコピーします。

↑の上部にあります。(隠してあるところです)

https://drive.google.com//drive/folders/フォルダのID

これを B1 のセルに入れてください!

次に、作成したショートカットを保存する先のフォルダのIDを F1 のセルに入れてください!

[2] 実行!

これで準備完了です!!😆

実行する関数を onOpen に設定して、▶️(実行)をクリックしましょう!

いつものように、最初は権限の承認が出てきますので、初めての方はこちらを参考にしてください!😎

[3] メニュー

一度権限を承認してしまえば、自作したメニューから実行できます。

「ファイル一覧取得」をクリックします!

このように、一覧が出ます。

次に、「ショートカット作成」をクリックします!

このように、ショートカットの URL が作られ….

ショートカットが作られましたね!!👍✨

上記は、基本のスクリプトなので、改変していけば、いろいろ作れる気がしますね!!

ぜひご活用ください!!

一応、前回の配布資料に追加しておいたので、どうしてもできなければ、こちらを参考にしてください!!

Twitter

Facebook

ポートフォリオ

YouTube チャンネル

いちばんやさしい Google Apps Script


何かと0から1を作るのは大変だと思います。学校はどこも似たような問題課題に対応していると思います。それなのに、先生って自分だけで頑張ろうとするんですよね。ボクの資料やnoteが1になって、学校ごとの現状に合わせてカスタムしていただければと思います‼️