前回の続きです!!
上記に、ショートカット作成を追加してみます!
ショートカットを作成したいフォルダの一覧を取得して、ショートカット作成先に指定したフォルダ内に作っていきます!
[0] Google スプレッドシート の準備
下記をクリックして新規作成してください!
Google Sheets: Sign-inAccess Google Sheets with a personal Google account or Googlesheet.new
そして、シート名を フォルダ一覧 としてください。
事前準備として、このようにしてください!
この後、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 が作られ….
ショートカットが作られましたね!!👍✨
上記は、基本のスクリプトなので、改変していけば、いろいろ作れる気がしますね!!
ぜひご活用ください!!
一応、前回の配布資料に追加しておいたので、どうしてもできなければ、こちらを参考にしてください!!
コメント