Google Apps ScriptーGoogle Driveでの操作について

最終更新日:2026年8月5日

⚠️ UIの変更について:本記事は公開当時のスクリプトエディタを基に解説しており、記事内の画面キャプチャも当時のものです。旧UIでは上部メニューの「ツール」→「スクリプトエディタ」から開いていましたが、現行UIでは「拡張機能」→「Apps Script」から開く仕様に変更されています。本文の該当箇所は現行の情報に更新しています。

Google Apps ScriptでGoogle Driveを操作する準備

項目 Google Apps Script Excel VBA Python
主な用途 Google Workspace自動化 Excel業務自動化 汎用自動化・データ分析
学習難易度 低(JavaScript系) 低〜中
実行環境 クラウド(無料) Windows/Excel必須 ローカル or クラウド
Googleサービス連携 最高 API経由で可

Scriptの準備

まず、Scriptの準備をします。新規のスプレッドシートを作成して(タイトルはGAS練習にしました)、メニューバーの「拡張機能」→「Apps Script」の順に進みます。

Googleスプレッドシートのメニューから拡張機能経由でApps Scriptを開く画面

そうすると、Apps Scriptエディタという画面が開きます。スクリプトファイル名(コード.gs)や関数名(myFunction)を任意の名前にして、これで準備は完了です(タイトルは「GAS練習プロジェクト」にしました)。

Apps Scriptエディタでスクリプトファイル名と関数名を設定する画面

Google Driveのフォルダを取得する

●「Google Apps ScriptでGoogle Driveのフォルダを取得」
Google Apps ScriptでGoogle Driveのフォルダを取得する場合は、DriveAppのgetFolderByIdメソッドを使用します。
DriveApp.getFolderById(フォルダID)←これでフォルダをオブジェクトとして取得することが出来ます。
IDを知る手段は、Google Driveでフォルダを開いている際に表示されているURLの以下の部分です。
https://drive.google.com/drive/folders/{フォルダID}

●「Google Driveを操作するスクリプトの実行」
例えば、以下のスクリプトを書きます。

function myFunction() {
  const folder = DriveApp.getFolderById('xxxxxxxxxxxx'); // フォルダIDを指定
  console.log(folder.getName());
}

folder.getName()ですが、これはフォルダ名を取得するメソッドです。
そして、関数(myFunction)を選択した状態で「実行アイコン」(▶マーク)又は「Ctrl」+「R」で実行します。

●「Google Driveへのリクエストを承認」
初回の実行の場合は、Google Driveへのリクエストの承認を求められます。「Authorization required」というダイアログが表示されますので、「許可を承認」から承認作業を進めて下さい。
以降、いくつかのウィンドウが開かれますが、順次確認をして許可をしていって下さい。この一連作業が終わると、スクリプトからGoogle Driveの操作の許可をしたことになります。

Google Driveのファイルを取得する

Google Driveのファイルを取得する場合は、DriveAppのgetFileByIdメソッドを使用します。
DriveApp.getFileById(ファイルID)←これで、IDで指定したファイルをオブジェクトとして取得することが出来ます。
ファイルIDの取得は、Google Driveで対象ファイルを右クリックし、「共有可能なリンクを取得」を選択することで得られます。
https://drive.google.com/open?id={ファイルID}
又は、Google Driveで対象ファイルのプレビューを開く→右上の「その他の操作」アイコン→「新しいウィンドウで開く」でも取得出来ます。以下が、その際のURLです。
https://drive.google.com/file/d/{ファイルID}/view

●「ファイルオブジェクトのファイル名を表示」
ファイルオブジェクトを取得して、そのファイル名をログ出力するスクリプトを紹介します。

function myFunction() {
  const file = DriveApp.getFileById('xxxxxxxxxxxx'); // ファイルIDを指定
  console.log(file.getName());
}

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

createFileメソッドで内容を指定してファイルを作成する

Google Driveの特定のフォルダ内にファイルを作成するには、FolderオブジェクトへのcreateFileメソッドを使用します。
createFileには2種類の使い方がありますので、それぞれ紹介します。

1. ファイル名・内容・MIMEタイプを指定する方法

Folderオブジェクト.createFile(ファイル名, 内容, MIMEタイプ)
※MIMEタイプ―Webサーバとブラウザの間でやり取りされるデータの中でファイル形式を示す識別子。(例).pdf

●内容を指定してファイルを作成
以下のようなスクリプトで実行します。

function createFile() {
  const folder = DriveApp.getFolderById('xxxxxxxxxxxx'); // フォルダIDを指定
  folder.createFile('New File', 'Hello, world!', MimeType.PDF);
}

上記のように入力すると、指定したフォルダにPDFファイルが生成されます。

2. Blobオブジェクトを用いる方法

Folderオブジェクト.createFile(Blobオブジェクト)
※Blobオブジェクト―Apps Scriptサービスのデータ交換オブジェクト。ファイルに似た性質をもつ

●Blobオブジェクトを指定してファイルを作成
以下のようなスクリプトで実行します。

function createFile() {
  const folder = DriveApp.getFolderById('xxxxxxxxxxxx'); // フォルダID
  const file = DriveApp.getFileById('xxxxxxxxxxxx'); // ファイルID
  const blob = file.getBlob();
  folder.createFile(blob);
}

よくある質問(FAQ)

Q. getFolderByIdやgetFileByIdでフォルダ・ファイルが取得できない場合は?

フォルダID・ファイルIDの指定間違いが最も多い原因です。IDはURLの/folders//d/の後ろの文字列を過不足なくコピーしているか確認してください。それでも取得できない場合は、対象のフォルダ・ファイルにスクリプト実行者のGoogleアカウントの閲覧権限があるかも確認しましょう。

Q. createFileで既に同名のファイルがある場合はどうなりますか?

Google Driveは同一フォルダ内でも同名ファイルを別ファイルとして共存させられるため、上書きはされず新しいファイルが追加で作成されます。同名ファイルの重複を避けたい場合は、事前にfolder.getFilesByName()で既存ファイルの有無を確認する処理を入れるとよいでしょう。

Q. DriveAppとDrive API(高度なサービス)の違いは何ですか?

DriveAppはGoogle Apps Scriptに標準で組み込まれているシンプルなクラスで、本記事で紹介したフォルダ・ファイルの取得や作成など基本的な操作に向いています。一方、Drive API(高度なサービス)は事前に有効化が必要な代わりに、共有権限の詳細設定やファイルのバッチ処理など、より高度で細かい操作に対応しています。まずはDriveAppから試し、機能が不足する場合にDrive APIの利用を検討するとよいでしょう。

Q. 作成したファイルをフォルダではなくマイドライブ直下に置きたい場合は?

createFileFolderオブジェクトではなくDriveAppに対して直接呼び出すことで、マイドライブ直下にファイルを作成できます(例: DriveApp.createFile('New File', 'Hello, world!', MimeType.PDF))。

Q. スクリプトを実行しても反映されないときは?

初回実行時は承認ダイアログの操作を最後まで完了しているかを確認してください。また、修正後のコードを保存(Ctrl+S)せずに実行していると古いコードのまま実行されてしまうため、保存してから実行アイコンを押すようにしましょう。

まとめ:Google Apps ScriptでGoogle Driveを操作する方法

この記事のポイント:

  • フォルダの取得はDriveApp.getFolderById(フォルダID)、ファイルの取得はDriveApp.getFileById(ファイルID)を使用する
  • フォルダID・ファイルIDはGoogle DriveのURLから取得できる
  • ファイルの作成はFolderオブジェクト.createFile()を使い、「ファイル名・内容・MIMEタイプ指定」と「Blobオブジェクト指定」の2種類の書き方がある
  • スクリプトエディタは現行UIでは「拡張機能」→「Apps Script」から開く
  • 初回実行時はGoogle Driveへのアクセス許可(承認)が必要

Google Apps ScriptでGoogle Driveを操作する方法をいくつか紹介しました。本記事でまだ紹介していない操作も多くありますので、フォルダ・ファイルの取得や作成に慣れてきたら、他のメソッドにもぜひ挑戦してみてください。

▼ アクロビジョンについて

👔

一緒に働きましょう

一人ひとりのキャリアに向き合い、
活躍できる現場をご紹介します。

採用サイトを見る →
💻

システム開発のご依頼・ご相談

コンサルティングから運用保守まで、
ワンストップで対応します。

まずはお気軽にご相談ください →