お手軽自動化ができるGoogle Apps Scriptを触ってみました!
Google Apps Scriptとは
Googleサービス周りを色々自動化できるすごいやつです!
例えば、何かの合同企画で複数人が寄稿したイラストをファイル管理するシチュエーションを考えたとしましょう。
各々が作成したイラストを用意したGoogleドライブの共有フォルダにアップしてもらい、寄稿された画像ファイルから寄稿者ごとにスプレッドシートにリスト化できると便利そうだとは思いませんか!
Google Apps Scriptで実装可能かはまだ分かりませんが、どこまでできるのか知るために触ってみようと思います!
お試し
Google Apps ScriptはGoogleのアカウントを持っている方ならだれでも利用可能です。
まずは、Googleドライブにスプレッドシートを新規作成しましょう。
作成したスプレッドシートを開き、上のタブにある拡張機能からApps Scriptを選択してください。
するとApps Scriptのコーディング画面がでてきました。
ここに色々機能をコーディングして、自動化システムとかが作れるみたいです。
※今回はお試しなので利用するコードの詳細の説明は省くのでご了承ください。
「Hello World!」の出力
手始めにプログラムの第一歩である「Hello World!」をログ出力してみます。
function mysFunction() {
console.log("Hello World!");
}
実行ボタンを押してコードを実行します。
実行するとログに「Hello World!」が出力されました!
成功!
フォルダにある画像ファイル名の取得
次に、Googleドライブに画像をアップロードして、そのファイル名をログ出力してみようと思います。
まずは画像提出フォルダを作成して、そこに適当な画像をアップロードします。
GoogleドライブはフォルダごとにIDが振られているので、そのIDをフォルダ指定するために使います。
フォルダのIDを用いて、指定のフォルダからファイル名を取得して、そのファイル名をログ出力するコードを作成しました。
function getFileNamesFunction() {
const folder_id = "<フォルダID>"
const folder = DriveApp.getFolderById(folder_id);
const files = folder.getFiles();
while (files.hasNext()) {
const file = files.next();
console.log(file.getName());
}
}
実行ボタンを押してコードを実行します。
無事、ログに「sample_image.png」というファイル名が出力されました!
成功!
スプレッドシートへの出力
最後に、上記までの手順で取得した画像ファイル名を、スプレッドシートに出力してみようと思います。
function getFileNamesFunction() {
const folder_id = "<フォルダID>"
const folder = DriveApp.getFolderById(folder_id);
const files = folder.getFiles();
const spread_sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
while (files.hasNext()) {
const file = files.next();
spread_sheet.getRange('A1').setValue(file.getName());
console.log(file.getName());
}
}
コードを実行。
実行結果は完了。
スプレッドシートにファイル名が出力されているかを見に行きます。
スプレッドシートを見てみると画像ファイルのファイル名がシートに記載されていました!
成功!
まとめ
というわけでGoogle Apps Scriptを使ってみました。
今回はお試しだったので雑なコードでしたが、コードを定期実行して画像ファイルを定期的にリスト更新するなど、本格的な管理とかもできそうな気がしました!
また、Googleのプラットフォームなら手軽に連携できるので、GoogleメールやGoogleフォームなどいろいろ繋げて楽しめそうです。
以上!