はじめに
今回の記事では、Google Apps Script (GAS)を使って、Googleドライブ上のGoogle ドキュメントをWordファイルに一括で変換する方法、そしてその逆、WordファイルをGoogleドキュメントに一括変換する方法について説明します。
GASを使うと、一度に多数のファイル変換の自動化が可能となります。
GAS(Google Apps Script)とは?
GASはGoogleの提供するスクリプト環境で、Googleのサービス(ドキュメント、スプレッドシート、ドライブなど)を操作することができます。GASを利用することで、手作業で行うと時間がかかるような作業を自動化することが可能となります。
GoogleドキュメントからWordに変換する
動作イメージ
Google Drive上にテストファイルとして「test1」「test2」「test3」というgoogle ドキュメントを作成しておきます。
その後、GASからプログラムを実行すると、[ConvertedDocs]フォルダが作成され、その中にWordに変換されたGoogleドキュメントが格納されます。
作成方法
まず、Google Driveにアクセスし、新規でフォルダを作成します。
Google Drive上にgoogle ドキュメントを格納する任意のフォルダを作成します。
作成後、作成したフォルダをクリックして移動し、アドレスバーのURLからフォルダのIDをコピーして控えておきます。
フォルダのIDは以下の「ここをコピー」の箇所になります。
https://drive.google.com/drive/u/0/folders/ここをコピー
コピーしたら次はGASにアクセスします。
ホーム画面右上の[新しいプロジェクト]をクリックします。
[サービス]>[Drive API]>[作成]をクリックします。作成が完了するとサービスの下に[Drive]と表示されます。
次に、実際にコードを記載していきます。もともと記載してある、
function myFunction() {
}
は削除して、新たに下記のコードをコピペしてください。
3行目の 「あなたのフォルダID」 に先ほど控えておいたGoogle DriveのフォルダIDを入力します。
function convertGoogleDocsToWord() {
// 対象とするフォルダのIDを指定する
var folderId = 'あなたのフォルダID';
var parentFolder = DriveApp.getFolderById(folderId);
// 子フォルダの作成(名前は 'ConvertedDocs')
var childFolder = parentFolder.createFolder('ConvertedDocs');
// フォルダ内の全てのファイルを取得する
var files = parentFolder.getFiles();
while (files.hasNext()) {
var file = files.next();
// ファイルがGoogleドキュメントの場合、それをWordファイルに変換する
if (file.getMimeType() === MimeType.GOOGLE_DOCS) {
// GoogleドキュメントをWord形式に変換し、そのBlobを取得する
var url = "https://www.googleapis.com/drive/v3/files/" + file.getId() + "/export?mimeType=application/vnd.openxmlformats-officedocument.wordprocessingml.document";
var options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
},
muteHttpExceptions: true
};
var response = UrlFetchApp.fetch(url, options);
var blob = response.getBlob().setName(file.getName() + '.docx');
// Wordファイルを子フォルダに保存する
childFolder.createFile(blob);
}
}
}
最後に「Ctrl + S」を押すか上部バーにある[プロジェクトを保存]をクリックするとスクリプトが保存されます。
実行方法
Google Driveに変換したいgoogle ドキュメントを格納します。
格納後、GASの[▶実行]ボタンをクリックします。
最初の関数の実行には権限が必要となるため、[承認が必要です]というモーダルが表示されたら、
[権限を確認]>[表示されているGoogleアカウント]>[詳細]>[無題のプロジェクト(安全ではないページ)に移動]>[許可]まで移動します。クリック後GASが実行されます。
WordからGoogleドキュメントに変換する
次は逆に、Wordファイルを一括でGoogleドキュメントに変換してみます。
動作イメージ
Google Drive上にテストファイルとして「test1.docx」「test2.docx」「test3.docx」というWordファイルを作成しておきます。
その後、GASからプログラムを実行すると、[ConvertedDocs]フォルダが作成され、その中にGoogleドキュメントに変換されたWordファイルが格納されます。
作成方法
作成方法もほとんど先ほどと同様になります。
まず、Google Driveにアクセスし、新規でフォルダを作成します。
Google Drive上にWordファイルを格納する任意のフォルダを作成します。
作成後、作成したフォルダをクリックして移動し、アドレスバーのURLからフォルダのIDをコピーして控えておきます。
フォルダのIDは以下の「ここをコピー」の箇所になります。
https://drive.google.com/drive/u/0/folders/ここをコピー
コピーしたら次はGASにアクセスします。
""]ホーム画面右上の[新しいプロジェクト]をクリックします。
[サービス]>[Drive API]>[作成]をクリックします。作成が完了するとサービスの下に[Drive]と表示されます。
次に、実際にコードを記載していきます。もともと記載してある、
function myFunction() {
}
は削除して、新たに下記のコードをコピペしてください。
function convertWordToGoogleDocs() {
// 対象とするフォルダのIDを指定する
var folderId = 'あなたのフォルダID';
var parentFolder = DriveApp.getFolderById(folderId);
// 子フォルダの作成(名前は 'ConvertedDocs')
var childFolder = parentFolder.createFolder('ConvertedDocs');
// フォルダ内の全てのファイルを取得する
var files = parentFolder.getFiles();
while (files.hasNext()) {
var file = files.next();
// ファイルがWordファイルの場合、それをGoogleドキュメントに変換する
if (file.getMimeType() === MimeType.MICROSOFT_WORD) {
// WordファイルをGoogleドキュメントに変換し、そのBlobを取得する
var blob = file.getBlob();
var resource = {
title: file.getName(),
mimeType: MimeType.GOOGLE_DOCS,
parents: [{ id: childFolder.getId() }],
};
Drive.Files.insert(resource, blob);
}
}
}
コピぺしたら、3行目の 「あなたのフォルダID」 に先ほど控えておいたGoogle DriveのフォルダIDを入力します。
最後に「Ctrl + S」を押すか上部バーにある[プロジェクトを保存]をクリックするとスクリプトが保存されます。
実行方法
Google Driveに変換したいgoogle ドキュメントを格納します。
格納後、GASの[▶実行]ボタンをクリックします。
最初の関数の実行には権限が必要となるため、[承認が必要です]というモーダルが表示されたら、
[権限を確認]>[表示されているGoogleアカウント]>[詳細]>[無題のプロジェクト(安全ではないページ)に移動]>[許可]まで移動します。クリック後GASが実行されます。
GASおすすめ本
GASをもっと勉強したい!ほかにも自分で何か作成したい!という方には以下がおすすめです。