スポンサードリンク

2007形式から2003形式へ一括して変換

先日部長から「このメールに添付しているファイルを古い形式にしてAさんに送付しておいて」

と指示を受けた。どうやら先方からダウングレードして送付してほしいと依頼があったらしい。

仕方ないなぁと思いながら取り掛かろうと思ったらファイルが7つも添付されていやがる。

めんどくさい。

手作業で1つ1つ変換して送付しようと思ったら、Aさんて社内の人間かよ!

なんで社内で2003と2007以降が同居してんだよ!

これはまた同じ指示が飛んできそうな気がする。

なんとか対策をしておかねば。

フォルダ内を一括変換

ということで早速以下のコードを作成

Sub From2007To2003()
     Dim FolderPath As String
     Dim myFSO As FileSystemObject
     
     With Application.FileDialog(msoFileDialogFolderPicker)
          .Show
          Set myFSO = New FileSystemObject
          
          Dim myFile As File
          Dim myBook As Workbook
          For Each myFile In myFSO.GetFolder(.SelectedItems(1)).Files
               Set myBook = Workbooks.Open(myFile.Path)
               Dim i As Long
               i = InStrRev(myFile.Path, ".")
               myBook.SaveAs Left(myFile.Path, i) & "xls", xlExcel8
               myBook.Close
          Next
          Set myFSO = Nothing
     End With
End Sub

指定したフォルダ内の2007形式のExcelファイルを順繰りに開いて2003形式に変更して保存する。

自分一人が使うものなのでエラートラップは全く仕込んでいない。


こういうときにエラーは出るだろう

・フォルダ選択時

・指定フォルダ内に2007形式のExcelファイル以外が保存されている。

・あるいは指定フォルダ内に何もファイルが無い。

・2007以降に搭載された機能を使用している

まとめ

これで100個のファイルを変換してくれと言われてもお安いご用。

(そもそも社内のOfficeのバージョンが統一されていれば、このような手間が発生しないのだけど。

ライセンス料をケチっているのだろうか。