とっちゃん@nyanco! です。
今回はWindowsで「.doc」を「.docx」に「互換モード」を無効にしつつ一括変換する方法のご紹介です。
VBScriptを使いますにゃ〜
ダウンロードしてダブルクリックするだけで使えますにゃ〜
「互換モード」をキープしたままでの変換バージョンも用意してますにゃ〜
参考にさせていただいた記事
まずは先に参考にさせていただいた記事のご紹介。
▼ヤフー知恵袋でズバリなコードが紹介されていました、ありがとうございます!

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

本記事では上記ページのコードをほぼそのまま公開、ダウンロードできるようにしております。
何か不都合などがありましたらすぐに非公開としますので、コメントなどで一報いただけると幸いですにゃ〜
スクリプトコード
早速ですが、カスタマイズしたコードはこちら。
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 メソッド参考ページ

CompatibilityMode 参考ページ

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ですにゃ〜
おわりに
いや〜やっぱりスクリプトは便利ですね!
ゼロから作るのは無理ですが、有用なコードがすぐに見つかるありがたいこのご時世。
簡単なカスタムであれば敷居は低いのでこれからも手作業では大変な作業の自動化を進めて参ります。
本記事がどなたかの参考になれば幸いです。
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント