ここから本文です

vbsでdocをdocxに一括変換する方法はありますか?

o0o********さん

2019/4/1902:52:50

vbsでdocをdocxに一括変換する方法はありますか?

閲覧数:
68
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

lin********さん

2019/4/1909:09:08

プログラムファイルの存在するフォルダ内のすべての「~.doc」ファイルを「~.docx」に保存します。

注意事項としては、14行目に「'so.DeleteFile gf & "\" & f.Name, True」とあり、実行しないように頭に「'」が付いています。

この「'」を削除すると、元の「~.doc」を削除してしまいますので、最初は、試してからこの「'」を削除してください。

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
dc.Close
Set dc = Nothing
'so.DeleteFile gf & "\" & f.Name, True
End If
Next
Set gf = Nothing
Set so = Nothing
MsgBox("Finished!")

簡単な説明です。

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

プログラムファイルの存在するフォルダ内のすべてのファイルを1つずつ処理。

If LCase(so.GetExtensionName(f.Name)) = "doc" Then

もし、拡張子が「doc」なら、

Set dc = wd.Documents.Open(gf & "\" & f.Name)

開いています。

dc.SaveAs2 gf & "\" & so.GetBaseName(f.Name) & ".docx", 16

「docx」にして保存しています(最後の「16」がデフォルト、すなわち「docx」での保存を意味しています)。

dc.Close
Set dc = Nothing

閉じています。

'so.DeleteFile gf & "\" & f.Name, True

元の「doc」ファイルを削除しています。

End If
Next

を、ファイルの数だけ繰り返しています。

Set gf = Nothing
Set so = Nothing
MsgBox("Finished!")

あとは、終了処理で、最後に「Finished!」と表示しています。

  • lin********さん

    2019/4/1909:13:07

    追伸です。

    ワードそのものを終了するのを忘れていました。

    Next



    Set gf = Nothing

    の間に、

    wd.Quit
    Set wd = Nothing

    の2行を追加しておいてください。

    これでワードそのものも終了できます。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/4/21 11:47:12

無事できました!ありがとうございます!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる