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のおすすめ書籍

作業環境の作り方

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