![見出し画像](https://assets.st-note.com/production/uploads/images/97632712/rectangle_large_type_2_a6ec9087962467640c05428d02b3492c.png?width=800)
ショートカット一括作成! / Google ドライブ
前回の続きです!
上記に、ショートカット作成を追加してみます!
ショートカットを作成したいフォルダの一覧を取得して、ショートカット作成先に指定したフォルダ内に作っていきます!
![](https://assets.st-note.com/img/1675941430796-Jsy6LmDCfa.png?width=800)
![](https://assets.st-note.com/img/1675941445107-3izzXMTvNr.png?width=800)
[0] Google スプレッドシート の準備
下記をクリックして新規作成してください!
そして、シート名を フォルダ一覧 としてください。
![](https://assets.st-note.com/img/1675943118042-G5k0a1ic5d.png)
事前準備として、このようにしてください!
![](https://assets.st-note.com/img/1675943173868-DAmWbP2Dse.png?width=800)
この後、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()]);
}
}
貼り付けたら、次に「サービス」の+ボタンをクリックします。
![](https://assets.st-note.com/img/1675944748415-Q7lcz0ziAP.png)
Drive API というものをクリックして、右下の「追加」をクリックしましょう!
![](https://assets.st-note.com/img/1675944749247-hgHAS3zQzL.png?width=800)
それでは 💾(保存)をしてください!
今回は、onOpen() にあるように、メニューの追加もしてみました!
function onOpen() {
SpreadsheetApp.getActiveSpreadsheet().addMenu('取得メニュー', [
{ name: 'ファイル一覧取得', functionName: 'driveFolder' },
{ name: 'ショートカット作成', functionName: 'createFolders' },
]);
}
![](https://assets.st-note.com/img/1675944188109-0ABACJDMkm.png)
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 というフォルダの中に入っているフォルダたちのショートカットを作りたいとき、
![](https://assets.st-note.com/img/1675944380191-SpXW6nmw2E.png?width=800)
この testFolder のID をコピーします。
フォルダのIDは、Google ドライブ のフォルダを開いた時のURLからコピーします。
![](https://assets.st-note.com/img/1675944521625-dXMFGiLU6A.png?width=800)
↑の上部にあります。(隠してあるところです)
https://drive.google.com//drive/folders/フォルダのID
これを B1 のセルに入れてください!
![](https://assets.st-note.com/img/1675944578846-RFAwsJxiNg.png?width=800)
次に、作成したショートカットを保存する先のフォルダのIDを F1 のセルに入れてください!
![](https://assets.st-note.com/img/1675944640733-xeeeItuKgb.png?width=800)
[2] 実行!
これで準備完了です!!😆
実行する関数を onOpen に設定して、▶️(実行)をクリックしましょう!
![](https://assets.st-note.com/img/1675944913517-cIqRkx8fqw.png?width=800)
![](https://assets.st-note.com/img/1675944942965-KebfNlLbHL.png?width=800)
いつものように、最初は権限の承認が出てきますので、初めての方はこちらを参考にしてください!😎
[3] メニュー
一度権限を承認してしまえば、自作したメニューから実行できます。
![](https://assets.st-note.com/img/1675945077104-2iYVmIXY2A.png?width=800)
「ファイル一覧取得」をクリックします!
このように、一覧が出ます。
![](https://assets.st-note.com/img/1675945127507-g2jj1e3u5t.png?width=800)
次に、「ショートカット作成」をクリックします!
![](https://assets.st-note.com/img/1675945148589-qYY5l6MLlm.png?width=800)
このように、ショートカットの URL が作られ….
![](https://assets.st-note.com/img/1675945185275-Z29r6y6Ocr.png?width=800)
ショートカットが作られましたね!!👍✨
![](https://assets.st-note.com/img/1675945227282-7P7Au1CDMK.png?width=800)
上記は、基本のスクリプトなので、改変していけば、いろいろ作れる気がしますね!!
ぜひご活用ください!!
一応、前回の配布資料に追加しておいたので、どうしてもできなければ、こちらを参考にしてください!!
ポートフォリオ
YouTube チャンネル
いちばんやさしい Google Apps Script
何かと0から1を作るのは大変だと思います。学校はどこも似たような問題課題に対応していると思います。それなのに、先生って自分だけで頑張ろうとするんですよね。ボクの資料やnoteが1になって、学校ごとの現状に合わせてカスタムしていただければと思います‼️