Excel VBA 質問スレッド №2034 (未解決)

エクセルVBAを使って、指定フォルダ内の拡張子を変更したい。 doc→docx, ppt→pptx

投稿者 : まる     投稿日時 : 2024/10/23(Wed) 15:14:28     OS : Windows 11     EXCEL : Office 365
古いファイルの拡張子を一つずつ変更していますが、エクセルVBAを使って変更できないでしょうか。

①任意のフォルダ内のppt,wordを一括でdoc→docx,ppt→pptxに変更し、上書き保存が可能なコマンドを教えて欲しい

スポンサーリンク
[返信 1] Re : エクセルVBAを使って、指定フォルダ内の拡張子を変更したい。 doc→docx, ppt→pptx
投稿者 : りんく     投稿日時 : 2024/10/23(Wed) 16:34:18
Excelの旧バージョン.xlsファイルを新バージョンの.xlsxファイルに変換するツールを作成してみた
https://qiita.com/yamaguchi50/items/90dabb95a6486140edcb

[返信 2] Re : エクセルVBAを使って、指定フォルダ内の拡張子を変更したい。 doc→docx, ppt→pptx
投稿者 : らたたた     投稿日時 : 2024/10/23(Wed) 23:24:26
拡張子を変えただけで、ファイルの性格が変わるものではない
下手するとファイルが壊れたりする
一個一個ファイルを開いて保存し直す必要があると思います

[返信 3] Re : エクセルVBAを使って、指定フォルダ内の拡張子を変更したい。 doc→docx, ppt→pptx
投稿者 : tek     投稿日時 : 2024/10/24(Thu) 08:17:53
上書きでなく、別のファルダへの保存としていますが、パワーポイント用の一例を作成してみました。
ワードはマクロの記録ができるので利用するか他の回答者を待ちましょう。
Sub ppt2pptx()
    Dim fromPath As String
    Dim toPath As String
    Dim App As Object
    Dim ppt As Object
    Dim fn As String
    Dim 拡張子 As String

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "pptのフォルダを指定ください"
        If Not .Show Then Exit Sub
        fromPath = .SelectedItems(1) & "\"
    End With
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "pptxのフォルダを指定ください"
        If Not .Show Then Exit Sub
        toPath = .SelectedItems(1) & "\"
    End With
    
    fn = Dir(fromPath & "*.ppt")
    If fn = "" Then Exit Sub
    Set App = CreateObject("PowerPoint.Application")
    Do While fn <> ""
        If LCase(fn) Like "*.ppt" Then
            Set ppt = App.Presentations.Open(fromPath & fn)
            If ppt.HasVBProject Then
                拡張子 = "m"
            Else
                拡張子 = "x"
            End If
            ppt.SaveAs toPath & fn & 拡張子
            ppt.Close
        End If
        fn = Dir()
    Loop
    App.Quit
End Sub

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-06 01:45:01 )
タイトルとURLをコピーしました