【GAS】共有フォルダの一括作成、PDFのファイル名に対応する共有フォルダに移動させるスクリプト
Google Apps Script(GAS)を使って以下の3つのスクリプトを作成しました
発注書を対応する共有フォルダに移動するスクリプト(1日1回実行)
品番リストを読み込んで共有フォルダを作成するスクリプト(年度で1回実行)
共有フォルダのリンクURLをスプレッドシートにまとめるスクリプト(年度で1回実行)
1. 発注書を対応する共有フォルダに移動するスクリプト
function movePurchaseOrders() {
// 発注書が保存されているフォルダのID
var sourceFolderId = 'YOUR_SOURCE_FOLDER_ID';
// ソースフォルダの取得
var sourceFolder = DriveApp.getFolderById(sourceFolderId);
// ソースフォルダ内のファイルを取得
var files = sourceFolder.getFiles();
while (files.hasNext()) {
var file = files.next();
var fileName = file.getName();
// 最初の5桁を品番として取得
var itemNumber = fileName.substring(0, 5);
try {
// 対応するフォルダの取得
var targetFolder = DriveApp.getFoldersByName(itemNumber).next();
// ファイルを移動
targetFolder.addFile(file);
sourceFolder.removeFile(file);
} catch (e) {
Logger.log('Folder for item number ' + itemNumber + ' not found.');
}
}
}
2. 品番リストを読み込んで共有フォルダを作成するスクリプト
function createSharedFolders() {
// 品番リストのスプレッドシートID
var sheetId = 'YOUR_SPREADSHEET_ID';
// 品番リストがあるシート名
var sheetName = 'YOUR_SHEET_NAME';
// シートの取得
var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName);
// 品番リストの取得
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
var itemNumber = data[i][0].toString();
// フォルダの作成
var newFolder = DriveApp.createFolder(itemNumber);
// フォルダの共有設定(必要に応じて)
newFolder.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
}
}
3. 共有フォルダのリンクURLをスプレッドシートにまとめるスクリプト
function listFolderLinks() {
// 品番リストのスプレッドシートID
var sheetId = 'YOUR_SPREADSHEET_ID';
// 品番リストがあるシート名
var sheetName = 'YOUR_SHEET_NAME';
// 結果を保存するシート名
var resultSheetName = 'YOUR_RESULT_SHEET_NAME';
// シートの取得
var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName);
var resultSheet = SpreadsheetApp.openById(sheetId).getSheetByName(resultSheetName);
resultSheet.clear(); // 以前の結果をクリア
// 品番リストの取得
var data = sheet.getDataRange().getValues();
var result = [];
for (var i = 0; i < data.length; i++) {
var itemNumber = data[i][0].toString();
try {
// 対応するフォルダの取得
var folder = DriveApp.getFoldersByName(itemNumber).next();
var folderUrl = folder.getUrl();
result.push([itemNumber, folderUrl]);
} catch (e) {
Logger.log('Folder for item number ' + itemNumber + ' not found.');
result.push([itemNumber, 'Folder not found']);
}
}
// 結果をスプレッドシートに書き込む
resultSheet.getRange(1, 1, result.length, 2).setValues(result);
}
ここから先は
330字
¥ 1,500
この記事が気に入ったらチップで応援してみませんか?