
GASでGoogle Driveのファイル整理を自動化!もう手作業でのファイル整理に時間を取られることはありません。
GASで特定フォルダ内のファイルを自動で分類・移動する
Google Apps Script(GAS)を使って、Google Drive内の特定フォルダにあるファイルを、条件に応じて自動で分類・移動する方法を解説します。ファイル数が多くなると、手作業での整理は大変ですが、GASを使えば効率的に管理できます。本記事では、GASの基本的な知識から、具体的なスクリプト例までを網羅的に解説します。
GASの基本と準備
まず、GASの基本について簡単に説明します。GASは、Google Workspaceの様々なサービス(Google Drive、Gmail、Google Sheetsなど)を連携させて自動化するためのスクリプト言語です。JavaScriptをベースにしているため、JavaScriptの知識があれば比較的簡単に習得できます。
GASを使うための準備として、以下の手順を行います。 1. Google Driveにアクセスし、スクリプトを作成したいフォルダを開きます。 2. 「新規」→「その他」→「Google Apps Script」を選択します。 3. 新しいスクリプトエディタが開きます。ここでGASのコードを記述します。
スクリプトエディタには、コードを記述するエリアと、スクリプトを実行したりデバッグしたりするためのツールバーがあります。また、Google Drive APIなどの各種APIを利用するためのライブラリも用意されています。
フォルダ内のファイルを取得する
最初に、特定のフォルダにあるファイルを取得するスクリプトを作成します。以下のコードは、指定したフォルダIDのフォルダにあるすべてのファイルを取得し、ファイル名をログに出力するものです。
function getFilesFromFolder(folderId) {
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFiles();
while (files.hasNext()) {
var file = files.next();
Logger.log(file.getName());
}
}
上記のコードでは、DriveApp.getFolderById(folderId)
で指定したフォルダIDのフォルダオブジェクトを取得しています。次に、folder.getFiles()
でフォルダ内のすべてのファイルを取得し、while
ループで各ファイルに対して処理を行います。file.getName()
でファイル名を取得し、Logger.log()
でログに出力しています。
このスクリプトを実行するには、スクリプトエディタのツールバーにある「実行」ボタンをクリックし、getFilesFromFolder
関数を選択します。初回実行時には、Googleアカウントへのアクセス許可を求められるので、許可してください。また、folderId
には実際のフォルダIDを設定する必要があります。フォルダIDは、Google Driveでフォルダを開いたときのURLに含まれています。(https://drive.google.com/drive/folders/{フォルダID}
)
条件に基づいてファイルを分類する
次に、取得したファイルを条件に基づいて分類するスクリプトを作成します。ここでは、ファイル名に特定のキーワードが含まれているかどうかで分類する例を示します。
function classifyFiles(folderId, keyword, targetFolderId) {
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFiles();
var targetFolder = DriveApp.getFolderById(targetFolderId);
while (files.hasNext()) {
var file = files.next();
if (file.getName().includes(keyword)) {
file.moveTo(targetFolder);
Logger.log(file.getName() + 'を' + targetFolder.getName() + 'に移動しました。');
}
}
}
上記のコードでは、classifyFiles(folderId, keyword, targetFolderId)
関数に、フォルダID、キーワード、移動先のフォルダIDを渡します。file.getName().includes(keyword)
でファイル名にキーワードが含まれているかどうかを判定し、含まれている場合はfile.moveTo(targetFolder)
でファイルを移動します。Logger.log()
で移動したファイルのログを出力しています。
このスクリプトを実行するには、folderId
、keyword
、targetFolderId
に適切な値を設定し、スクリプトエディタで実行します。例えば、ファイル名に「報告書」というキーワードが含まれているファイルを、「報告書フォルダ」に移動したい場合は、以下のように設定します。
* folderId
: 元のフォルダのID
* keyword
: ‘報告書’
* targetFolderId
: 報告書フォルダのID
定期的に実行するように設定する
最後に、作成したスクリプトを定期的に実行するように設定します。GASには、トリガーという機能があり、これを使うことで、時間やイベントをトリガーにしてスクリプトを自動的に実行できます。
トリガーを設定するには、スクリプトエディタの左側にある時計のアイコン(トリガー)をクリックします。「トリガーを追加」をクリックし、以下の設定を行います。
* 実行する関数: classifyFiles
(または、メインの関数名)
* 実行するデプロイ: Head
* イベントソース: 時間主導型
* 時間主導型トリガーのタイプ: 日タイマー
(または、適切な間隔)
* 時間: 実行する時間帯
上記の設定で、毎日指定した時間帯にclassifyFiles
関数が実行されるようになります。トリガーの設定は、必要に応じて変更できます。例えば、毎週特定の曜日に実行したり、毎月特定の日に実行したりすることも可能です。
// 例:毎日午前9時に実行するトリガー
// ただし、スクリプトエディタからGUIで設定する方が簡単です。
function createTimeDrivenTrigger() {
ScriptApp.newTrigger('classifyFiles')
.timeBased()
.atHour(9)
.everyDays(1)
.create();
}
参考リンク
まとめ
GASを使うことで、Google Drive内のファイルを自動で分類・移動するスクリプトを簡単に作成できます。本記事では、基本的なスクリプトの作成方法から、定期実行の設定までを解説しました。ファイル管理の自動化は、業務効率化に大きく貢献します。ぜひGASを活用して、日々の作業を効率化してください。