Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプト

★気に入ったらシェアをお願いします!


みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

Google Apps Scriptで操作するサービスとして、スプレッドシート、Gmail、カレンダー、ドキュメント…と来ましたが、そろそろGoogleドライブも操作できるようになっておきましょう。

どんなツールを作るかと言いますと、メールの添付ファイルをGoogleドライブ内の指定のフォルダに自動保存するというツールです。

  • 特定の取引先やシステムから送られてくる定期レポート
  • eFAXなどで転送されてきたPDF

など、用途はけっこうあるかなと思います。

今回は第1回目。Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプトとしてGoogleドライブのフォルダとファイルを取得する方法についてお伝えします。

では、行ってみましょう!

スポンサーリンク

スクリプトエディタを起動する

はい、ではまずスクリプトの準備をしていきましょう。

本ツールでは、ゆくゆくはGoogleドライブへの保存履歴をスプレッドシートに記録していきたいと考えているので、スプレッドシートからスクリプトエディタを開いていきたいと思います。

新規のスプレッドシートを作成して、メニューから「ツール」→「スクリプトエディタ」ですね。

スプレッドシートからスクリプトエディタを開く

スクリプトエディタが開きますので、プロジェクト名を「ドライブにファイル保存」、スクリプトファイル名を「test.gs」、関数名を「driveTest」に変更をしました。

スクリプトエディタ

これで準備はOKです。

Googleドライブのフォルダを取得する

今回は、はじめてのGoogleドライブの操作ということで、Googleドライブ内の以下「Googleドライブ操作」という名称のフォルダを操作してみたいと思います。

操作をするGoogleドライブ

中には、このスクリプトを仕込んでいるスプレッドシート「ドライブにファイル保存」、「プランノーツ会社説明」というpdfファイルがあります。

まず、このフォルダをGoogle Apps Scriptで取得してみましょう。

getFolderByIdメソッドでGoogleドライブのフォルダを取得

Google Apps ScriptでGoogleドライブのフォルダを取得する場合は、DriveAppのgetFolderByIdメソッドを使います。

DriveApp.getFolderById(フォルダID)

これでフォルダをオブジェクトとして取得することができます。

IDをどのように知るかと言いますと、フォルダであればGoogleドライブでそのフォルダを開いている際のURLの

https://drive.google.com/drive/folders/{フォルダID}

の部分です。

GoogleドライブのURLからフォルダIDを知る

Googldeドライブを操作するスクリプトの実行

例えば、以下のようなスクリプトを書いてみましょう。

そして、関数を選択した状態で「実行」アイコン、または Ctrl + R で実行です。

スクリプトを実行する

Googleドライブへのリクエストを承認

初回の実行であればGoogleドライブへのリクエストの承認を求められます。

まずは「許可を確認」です。

Googleドライブの承認が必要です

ウィンドウが開きますので「許可」をします。

Googleドライブへのリクエストを許可

これで、このスクリプトからGoogleドライブの操作の許可を得られたということですね。

フォルダオブジェクトのフォルダ名を表示

実行しても何も起きないように思えるかも知れませんが、Logger.logですからログに何かが表示されているはずです。

スクリプトエディタのメニューの「表示」→「ログ」または Ctrl + Enter でログを確認することができます。

GASでフォルダ名をログ出力

フォルダ名が「Googleドライブ操作」と出力されていますね。

スクリプトで使用されているgetNameメソッドフォルダ名を取得するメソッドです。

Folderオブジェクト.getName()

getFileByIdメソッドでGoogleドライブのファイルを取得する

では、もう一つスクリプトを作ってみましょう。

今度は、フォルダ内に保存されていたファイル「プランノーツ会社説明.pdf」を取得してみましょう。

Googleドライブのファイルを取得する場合は、DriveAppのgetFileByIdメソッドを使います。

DriveApp.getFileById(ファイルID)

これで、IDで指定したファイルをオブジェクトとしてつかむことができます。

ファイルのIDは、Googleドライブで対象ファイルを右クリック→「共有可能なリンクを取得」にて得られる

https://drive.google.com/open?id={ファイルID}

または、Googleドライブで対象ファイルのプレビューを開く→右上の「その他の操作」アイコン→「新しいウィンドウで開く」をした際のURL

https://drive.google.com/file/d/{ファイルID}/view

で得ることができます。

Googleドライブのプレビュー画面で得られるIDはフォルダIDなので気をつけて下さいね。

ファイルオブジェクトのファイル名を表示

それではファイルオブジェクトを取得して、そのファイル名をログ出力するスクリプトを実行してみましょう。

ファイル名の表示もgetNameメソッドで可能です。

Fileオブジェクト.getName()

ログ出力の結果を見ると

GASでGoogleドライブのファイル名をログ出力

このようにファイル名が表示されていることを確認できました。

まとめ

以上、Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプトとして

  • GoogleドライブのフォルダをIDで取得してそのフォルダ名を表示する
  • GoogleドライブのファイルをIDで取得してそのファイル名を表示する

という二つのスクリプトを紹介しました。

Googleドライブ上のフォルダやファイルは何でもIDで取得することができますので、覚えておいてくださいね。

次回はGoogleドライブのフォルダ内にファイルを生成する方法についてお伝えしますね。

Google Apps ScriptでGoolgeドライブのフォルダ内にファイルを作成する方法
Google Apps ScriptでGoogleドライブの特定フォルダにファイルを作成する方法についてお伝えします。内容やMIMEタイプを指定する方法、Blobオブジェクトを指定する方法の二つあります。

どうぞお楽しみに!

連載目次:GASでGoogleドライブを操作してメール添付を自動保存

メールの添付ファイルをGoogleドライブに自動保存するツールを題材として、Google Apps ScriptでGoogleドライブを操作する方法についてお伝えするシリーズです。
  1. Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプト
  2. Google Apps ScriptでGoolgeドライブのフォルダ内にファイルを作成する方法