Amazonプライム感謝祭開催中!セール会場へ

Googleドライブ│フォルダ内のファイルをまとめてスプレッドシート・スライド・ドキュメントに自動変換する方法

eyecatch-google-apps-script-convert-spreadsheet

Googleドライブで共有された .xlsx や .csv、.pptx などのファイルを、毎回手動でGoogleスプレッドシートやスライドに変換していませんか。

少数なら手動でも対応できますが、ファイル数が増えると手間と時間がかかります。

そこで本記事では、GAS(Google Apps Script)とDrive APIを活用して、Driveフォルダ内のファイルを一括でGoogle形式に変換する方法を解説します。

目次

なぜGASで自動変換するのか

  • Googleドライブ上で受け取った .xlsx や .csv、.ppt のままだとプレビューや共同編集がしづらい
  • 複数人での閲覧や同時編集を行うため、Google形式への変換が必要になる
  • 手動で1つずつ変換すると時間がかかり、作業漏れも起こりやすい

事前準備:Google Drive APIの有効化

スクリプト自体はシンプルですが、事前にAPIを有効化する設定が必要です。

Google Drive APIを使えるように設定する

設定画面には英語の項目もありますが、手順どおりに進めれば問題ありません。

Googleドライブを開き、「新規」>「その他」>「Google Apps Script」の順に選択してプロジェクトを新規作成します。

GoogleドライブからGoogle Apps Scriptを選択して新規プロジェクトを作成する手順。

プロジェクト名の変更

「無題のプロジェクト」をクリックして任意の名称に変更します。

(例:「フォルダ内ファイル一括変換」)

Googleの拡張サービスを選択

上部メニューの「リソース」>「Googleの拡張サービス」を選択します。

上部メニューのリソースからGoogleの拡張サービスを選択する画面。

案内ダイアログが表示されたら、「OK」をクリックしてGoogle Cloud Platform(GCP)のコンソール画面を開きます。

Google Drive APIの選択

API一覧や検索窓から「Google Drive API」を検索して選択します。

コンソール画面のAPI一覧や検索窓からGoogle Drive APIを検索して選択する手順。

Google Drive APIを有効にする

「有効にする」ボタンをクリックします。

Google Drive APIの詳細画面で有効にするボタンをクリックする手順。

認証情報の作成

「認証情報を作成」をクリックします。

API管理画面で認証情報を作成をクリックする操作。

必要な認証情報の指定

  • Google Drive API
  • ウェブブラウザ(JavaScript)
  • ユーザーデータにチェック

各項目を設定し、「必要な認証情報」をクリックします。

必要な認証情報の指定で各項目を設定し、次へ進む設定画面。

ユーザータイプの選択

User Typeで「内部」を選択します。

ユーザータイプの選択画面で内部を指定する操作。

アプリ名の入力

アプリケーション名を入力します。

認証情報設定でアプリケーション名を入力する画面。

認証情報の作成完了

画面の案内に沿って認証情報の作成を完了した状態。

画面の案内に沿って進め、認証情報の作成を完了します。

完了したら、Google Apps Scriptのエディタ画面に戻ります。

Drive APIの有効化確認

再度上部メニューの「リソース」>「Googleの拡張サービス」を開きます。

スクリプトエディタの上部メニューのリソースからGoogleの拡張サービスを再度開く画面。

Drive APIを有効にする

「Drive API」をONに切り替えて「OK」をクリックします。

拡張サービス一覧でDrive APIをオンに切り替えて有効にする手順。

実行権限の承認

スクリプト初回実行時に表示される実行権限の承認画面。

「このアプリは確認されていません」と警告が表示された場合は、「詳細」から「(安全ではないページ)に移動」をクリックして進みます。

アカウントへのアクセスを「許可」すれば初期設定は完了です。

これでGASからDrive APIの機能を利用できるようになります。

あとはスクリプトを実行するだけで、指定フォルダ内のOfficeファイルをGoogle形式へ一括変換できます。

フォルダ内のファイルを一括でGoogle形式に変換するスクリプト

  1. 後述のスクリプトコードをエディタに貼り付けます。
  2. 対象となるGoogleドライブのフォルダID(URL末尾の https://drive.google.com/drive/folders/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx にあたる文字列)を指定します。
  3. 実行ボタンをクリックすると、同一フォルダ内に変換後のファイルが生成されます。(例:2つのCSVファイルを実行した場合、それぞれのスプレッドシートが作成されます)
スクリプト実行によりフォルダ内に変換後のファイルが生成された様子。

なお、フォルダ自体をコピーする方法は以下の記事で解説しています。

Googleスプレッドシートに関するその他の便利操作は、まとめ記事をご覧ください。

function myConvertToSpreadsheet() {
    var id = "GoogleDriveのフォルダID";
    var source_folder = DriveApp.getFolderById(id);
    var target_files = source_folder.getFiles();
    var dest_folder = DriveApp.getFolderById(id);

    while (target_files.hasNext()) {
        var file = target_files.next();
        convertToSpreadsheet(file, dest_folder);
    }
}

function convertToSpreadsheet(file, folder) {
    var options = {
        title: file.getName(),
        mimeType: MimeType.GOOGLE_SHEETS,
        parents: [{ id: folder.getId() }]
    };
    Drive.Files.insert(options, file.getBlob());
}

Googleスライドに変換する場合

MimeType.GOOGLE_SLIDES に書き換えて実行します。

function convertToSlides(file, folder) {
    var options = {
        title: file.getName(),
        mimeType: MimeType.GOOGLE_SLIDES,
        parents: [{ id: folder.getId() }]
    };
    Drive.Files.insert(options, file.getBlob());
}

Googleドキュメントに変換する場合

同様に MimeType.GOOGLE_DOCUMENT に書き換えて実行します。

function convertToDocument(file, folder) {
    var options = {
        title: file.getName(),
        mimeType: MimeType.GOOGLE_DOCUMENT,
        parents: [{ id: folder.getId() }]
    };
    Drive.Files.insert(options, file.getBlob());
}

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。

Googleドライブのファイルやフォルダを扱う記事は、ほかにもあります。

まとめ

Googleドライブ上のファイルを、毎回手動で変換する作業は不要になります。

GASとDrive APIを連携させれば、1クリックで大量のファイルをまとめて変換可能です。

定期的なファイル変換作業の効率化や、チームでの情報共有スピード向上にぜひ役立ててください。

この記事の手順はGASの旧エディタのものです。

現在のエディタでは拡張サービスの追加は左メニューの「サービス」から行います。

画面が違う場合は、現行のエディタに読み替えてください。

よくある質問:GASでフォルダ内のファイルをGoogle形式へ一括変換するときのチェックリスト

このスクリプトは、何をしますか?

指定したGoogleドライブのフォルダ内にあるファイル(.xlsxや.csv、.pptなど)を、Drive APIを使って、Googleスプレッドシートへ一括で変換します。同じフォルダ内に変換後のファイルが生成されます。例として、2つのCSVファイルを実行すると、それぞれのスプレッドシートが作成されます。スライドやドキュメントに変換する場合は、記事のコードのMimeTypeを書き換えます。

事前に、何を設定しますか?

Google Drive APIの有効化が必要です。記事の手順は、GASの旧エディタのものです。現在のエディタでは、拡張サービスの追加は左メニューの「サービス」から行います。画面が違う場合は、現行のエディタに読み替えてください。

「Drive.Files.insert is not a function」というエラーが出ました。

記事のコードは、Drive APIのv2の書き方(Drive.Files.insert、titleやparentsの指定)です。公式ドキュメントの拡張ドライブ サービスのサンプルは、v3(Drive.Files.create、nameの指定)に変わっています。サービスを追加するときに選んだバージョンと、コードの書き方が合っているか確認してください。バージョンを選ぶ画面や既定値は変わることがあるため、最新は公式ドキュメントで確認してください。

フォルダIDは、どこで確認しますか?

対象のGoogleドライブのフォルダのURL末尾の文字列がフォルダIDです。記事のコードの設定箇所に、その文字列を指定します。

もう一度実行すると、どうなりますか?

記事のコードを読む限り、変換済みかどうかを確認する処理はありません。再実行すると、同じファイルが再度変換され、重複したファイルが作られる可能性があります。変換元と変換後のファイルを、別のフォルダに分けて試すと安全です。

「このアプリは確認されていません」と表示されました。

警告が表示された場合は、「詳細」から移動して進み、アカウントへのアクセスを「許可」すると説明しています。自分で作成したスクリプトであることと、要求される権限の内容を確認してから、承認してください。

大量のファイルでも変換できますか?

ファイル数が多いと、Apps Scriptの実行時間などの制限を受ける場合があります。最初は少数のテスト用ファイルと、練習用のフォルダで試してください。

変換したファイルを、元に戻すには?

変換前のファイルは、そのまま残ります。変換後のファイルが不要なら、練習用フォルダを用意しておくと、整理しやすくなります。実際の業務のフォルダで実行する前に、フォルダの内容をコピーして試してください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

スプレッドシート・GASのおすすめ書籍

作業環境の作り方

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次