【Word】「.doc」を「.docx」に「互換モード」を無効にして一括変換する方法【Windows】

WEB / アプリ
WEB / アプリ
この記事は約5分で読めます。

とっちゃん@nyanco! です。

今回はWindowsで「.doc」を「.docx」に「互換モード」を無効にしつつ一括変換する方法のご紹介です。

肉玉にゃんこ

VBScriptを使いますにゃ〜
ダウンロードしてダブルクリックするだけで使えますにゃ〜
「互換モード」をキープしたままでの変換バージョンも用意してますにゃ〜

スポンサーリンク

参考にさせていただいた記事

まずは先に参考にさせていただいた記事のご紹介。

ヤフー知恵袋ズバリなコードが紹介されていました、ありがとうございます!

vbsでdocをdocxに一括変換する方法はありますか? - プログラムファイルの存在するフォルダ内のすべての「~.doc」ファイルを「~... - Yahoo!知恵袋
vbsでdocをdocxに一括変換する方法はありますか? プログラムファイルの存在するフォルダ内のすべての「~.doc」ファイルを「~.docx」に保存します。注意事項としては、14行目に「'so.DeleteFilegf&"\"&f.Name,True」とあり、実行しないように頭に「'」が付いています。この「'」を...

こちらのコードのままでも見事に「.docx」形式に一括変更できたのですが、「互換モード」のままでの変換でした。

今回は「.docx」形式に一括変換しつつ「互換モード」を無効にしたかったので、下記ページを参考にして少しカスタマイズさせていただきました。

VBScript to convert DOC to DOCX without Compatibility Mode enabled
My VBScript below converts a Word DOC to DOCX: Set oFSO = CreateObject("Scripting.FileSystemObject") fullpath = oFSO.GetAbsolutePathName(Wscript.Arguments.Item...

本記事では上記ページのコードをほぼそのまま公開、ダウンロードできるようにしております。

肉玉にゃんこ

何か不都合などがありましたらすぐに非公開としますので、コメントなどで一報いただけると幸いですにゃ〜

スクリプトコード

早速ですが、カスタマイズしたコードはこちら。

Option Explicit
Dim dc, f, gf, so, wd
Set so = CreateObject("Scripting.FileSystemObject")
Set gf = so.GetFolder(so.GetParentFolderName(WScript.ScriptFullName))
Set wd = CreateObject("Word.Application")
wd.Application.DisplayAlerts = False
wd.Visible = False
For Each f In gf.Files
If LCase(so.GetExtensionName(f.Name)) = "doc" Then
Set dc = wd.Documents.Open(gf & "\" & f.Name)
dc.SaveAs2 gf & "\" & so.GetBaseName(f.Name) & ".docx", 16, , , , , , , , , , , , , , , 65535
dc.Close
Set dc = Nothing
'so.DeleteFile gf & "\" & f.Name, True
End If
Next
wd.Quit
Set wd = Nothing
Set gf = Nothing
Set so = Nothing
MsgBox("Finished!")

カスタマイズ箇所

カスタマイズした箇所はたった一箇所で、11行目の末尾(下記部分)です。

, , , , , , , , , , , , , , , 65535

コンマがたくさんでなんじゃこりゃ?と思ってしまいますが、SaveAs2というメソッドで使えるたくさんの引数の一番最後に「互換モード」が設定できるため、こうなってます。

肉玉にゃんこ

「65535」という値はWordの最新バージョンに相当、つまり「互換モード」無効ということになりますにゃ〜

SaveAs2 メソッド参考ページ

Document.SaveAs2 メソッド (Word)
Office VBA reference topic

CompatibilityMode 参考ページ

WdCompatibilityMode 列挙 (Word)
Office VBA reference topic

VBScriptのダウンロードはこちら

VBSスクリプトをダウンロードしてすぐに使えるよう、以下の4種類用意しました。

  • 「互換モード」無効で元の「.doc」ファイルを残す
  • 「互換モード」無効で元の「.doc」ファイルを削除
  • 「互換モード」はそのままで元の「.doc」ファイルを残す
  • 「互換モード」はそのままで元の「.doc」ファイルを削除
肉玉にゃんこ

必要に応じて使い分けてくださいにゃ〜
また、各ファイルはzipファイルで圧縮しているので解凍してお使いくださいにゃ〜

「互換モード」無効で元の「.doc」ファイルを残す

「doc-docx-noCompa.vbs.zip」をダウンロード

「互換モード」無効で元の「.doc」ファイルを削除

「doc-docx-noCompa_doc-del.vbs.zip」をダウンロード

「互換モード」はそのままで元の「.doc」ファイルを残す

「doc-docx-Compa.vbs.zip」をダウンロード

「互換モード」はそのままで元の「.doc」ファイルを削除

「doc-docx-Compa_doc_del.vbs.zip」をダウンロード

使い方

使い方はめちゃくちゃ簡単!

「.docx」形式に変換したい「.doc」ファイルがある同じフォルダ内に、ダウンロードして解凍したVBScriptを入れてダブルクリックするだけ!

「.doc」のファイル数に応じてかかる時間は前後しますが、大体は数秒で完了し「Finished!」というダイアログが表示されたら処理完了です。

肉玉にゃんこ

フォルダ内に「.docx」ファイルが生成されているか確認できたらOKですにゃ〜

おわりに

いや〜やっぱりスクリプトは便利ですね!

ゼロから作るのは無理ですが、有用なコードがすぐに見つかるありがたいこのご時世。

簡単なカスタムであれば敷居は低いのでこれからも手作業では大変な作業の自動化を進めて参ります。

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント

タイトルとURLをコピーしました