本記事ではGoogle Apps Script(GAS)を活用します。Google Drive内の任意フォルダにある多数のWordファイル(.docx)に対して、個別にPDF形式に一度に変換するスクリプトを載せました。このスクリプトを活用すれば、特に大量のファイルをまとめて処理したい場合に非常に便利です。
■ GASファイルを作成する方法
次の2通りあります。
■ 全体コード
上記で作成したGASファイルに下記コードをコピペすることで使用できます。ただし、wordファイルがあるフォルダIDと、pdfファイルを保存するフォルダIDは指定してください。
フォルダIDとは、Google Drive上の各フォルダを一意に識別するための文字列です。このIDを使用することで、Google Apps ScriptやAPIから特定のフォルダを指定して操作できます。具体的には下図のようにブラウザのアドレスバーの最後の部分です。

function listDocxFilesInFolderAndSaveAsPdf() {
var folderId =
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFilesByType(MimeType.MICROSOFT_WORD); // .docxファイルを取得
var result = [];
// .docxファイルのリストを作成
while (files.hasNext()) {
var file = files.next();
result.push({
name: file.getName(),
id: file.getId()
});
}
// ファイルの総数
var totalFiles = result.length;
// 結果を順番に処理してPDFを保存
result.forEach(function(file, index) {
savePdf(file.id, file.name, index + 1, totalFiles); // インデックスをナンバリング用に渡す
});
// 全ての処理が完了したことをログに表示
Logger.log('全てのPDF変換が完了しました。');
}
// PDFを保存する関数
function savePdf(docId, docName, currentIndex, totalFiles) {
// PDFの保存先フォルダーID
let folderId = "ここに、pdfファイルの保存先フォルダIDを指定する";
// PDFに保存するファイル名を指定(拡張子 .docx を削除)
let baseFileName = docName.replace(/\.docx$/,
// 関数createPdfを実行してPDFを作成して保存
createPdf(folderId, docId, baseFileName);
// ナンバリングと共にログに表示
Logger.log('[' + currentIndex +
}
// PDFを作成し指定したフォルダーに保存する関数
function createPdf(folderId, docId, fileName) {
// PDFを作成するためのベースとなるURL
let url = "https://docs.google.com/document/d/"
+ docId
+ "/export?&exportFormat=pdf&format=pdf";
// アクセストークンを取得
let token = ScriptApp.getOAuthToken();
// ヘッダーにアクセストークンを格納
let options = {
headers: {
}
};
// PDFを作成
let blob = UrlFetchApp.fetch(url, options).getBlob().setName(fileName +
// PDFの保存先フォルダー
let folder = DriveApp.getFolderById(folderId);
// PDFを指定したフォルダに保存
folder.createFile(blob);
}
次の3つの処理を順番にすることで、複数のファイルに対して一括処理できます。
- 指定したフォルダ内のWordファイル(.docx)の一覧を取得
- 取得した各Wordファイルに対して、順番にPDFへ変換
- 作成したPDFファイルを指定したフォルダに保存
■ 備考
Google Drive API権限の付与が必要です。初回実行時にGoogle Driveのアクセス権限が求められます。指示に従って承認してください。
以上
<広告>
リンク
リンク
リンク