• ベストアンサー

Excel マクロで、ファイル形式を一括変更したい

Excel マクロで、ファイル形式を一括変更したいです。 デスクトップにある「Aフォルダ」の中に xlsファイルが100ほどあります。 それらのファイルを xlsxファイルに変更して、同じくデスクトップにある「Bフォルダ」に保存したいです。 わからないなりに、つぎはぎでやってみたのですが、保存場所の指定がうまくいかなくて困っています。 よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>デスクトップにある「Aフォルダ」の中に xlsファイルが100ほどあります Sub Test()   Dim fso As Object   Dim f As Object   Dim myBook As Workbook   Dim myPath As String, bn As String   Application.ScreenUpdating = False   myPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")   Set fso = CreateObject("Scripting.FileSystemObject")   For Each f In fso.GetFolder(myPath & "\A").Files     If LCase(fso.GetExtensionName(f)) = "xls" Then       bn = fso.GetBaseName(f)       Set myBook = Workbooks.Open(f)       myBook.SaveAs Filename:=myPath & "\B\" & bn,       FileFormat:=xlWorkbookDefault       myBook.Close False     End If   Next   Set fso = Nothing   Application.ScreenUpdating = True   MsgBox "End" End Sub

その他の回答 (1)

  • SI299792
  • ベストアンサー率48% (715/1480)
回答No.1

図の様に入力フォルダと出力フォルダを入れて実行して下さい。 マクロは消えます。 ' Option Explicit ' Sub Macro1() '   Dim FileName As String '   FileName = Dir([B1] & "\*.xls")   Application.DisplayAlerts = False '   While FileName > ""     Workbooks.Open [B1] & "\" & FileName     ActiveWorkbook.SaveAs ThisWorkbook.ActiveSheet.[B2] & "\" & FileName & "x", _       xlOpenXMLWorkbook     ActiveWindow.Close     FileName = Dir   Wend   Application.DisplayAlerts = True End Sub

関連するQ&A

  • エクセルのxls形式からxlsx形式の一括変換

    エクセルのxls形式からxlsx形式の一括変換、その逆もできますか?  いつもお世話になっております。  職場でのパソコンがOffice2003、2007、2010と混在しており、保存されているファイルも拡張子が「*.xls」と「*.xlsx」が混在しています。  ファイルを開いて、「*.xls」形式を「*.xlsx」形式に形式を選択し、保存しなおししたり、その逆もすることが多いのですが、多くの手間がかかります。(例えば、20個程度のファイルなら20回)  複数のファイルを一括して変換することはできませんか。

  • エクセルでのファイル名の一括変更 マクロ

    皆様お世話になります。 あるフォルダーの下位にユニークに名前の付けられた900個ほどのフォルダーがあり それれぞれの、フォルダーの中にA,Bというフォルダーがあります。 その中にa.xls,b.xlsなどというファイルが存在しています。 そのa.xlsやb,xlsの名称を変換したいのですが数量が非常に多いためマクロか、何かで変更する方法がありますか? ファイル名の条件として 開いたエクセルのC,4とH,4を合体させたファイル名にすると、非常にありがたいのですが。 よろしくお願いします。

  • csv形式のテキストファイルをexcelでCSV化するマクロについて

    今、ひとつのフォルダに大量にCSV形式で保存されているテキストファイルを excelのマクロを使って、ひとつのexcelにCSV形式(.xls)で保存するものを作成している のですが、今までマクロを使ったことがないため、まったく歯が立ちません。 もう少し詳しく書くと、テキストファイルの中身は、 01,54521,18:01:02,110230 というようになってます。 これを、excelのマクロを使い、カンマ区切りで取り込むような感じです。 すみませんが、回答お願いいたします。

  • エクセルでファイルをcsv形式で保存するマクロについて

    同様の質問が以前にあったのですが、 どうやら私のは少し違うようなので新規質問として投稿させていただきます。 エクセルファイルを保存する際、保存形式を「テキスト(タブ区切り)(*.txt)」にして、 ファイル名の拡張子の部分だけ(.csv)にして保存するマクロを作成したいです。 しかし、エクセルに付いているオートマクロ機能で記録しようとすると、 ・ファイル名がオートマクロを作成した際に付けたファイル名になってしまう。 ・保存場所がオートマクロを作成した際に保存したフォルダになってしまう。 という問題が発生します。 なので、 ・保存する際のファイル名は現在作業しているファイルの名前をそのまま使用する。 ・保存する際のファイル名の拡張子部分は(.csv)に変更する ・保存場所は現在作業しているファイルがあるフォルダにする(もしくはプログラムで予めパスを指定できる)。 ・保存形式は「テキスト(タブ区切り)(.txt)」 の4つの条件を満たすマクロの作成方法をお教えいただけますでしょうか? すみませんが、よろしくおねがいします

  • ファイル名を変更するマクロ

    あるフォルダ内にエクセルファイルが複数あります。 そのエクセルファイルの名前の一部を一括で変更する エクセルマクロを教えて下さい。 下記のように「課題」の部分を「完了」に変更したい。 例: 変更前 1201課題.xls 1202課題.xls 1203課題.xls 1204課題.xls 変更後 1201完了.xls 1202完了.xls 1203完了.xls 1204完了.xls 説明不足かもしれませんが、宜しく御願い致します。

  • Excel(2000)形式のファイルを一括でタブ区切りテキストに変換

    Excell形式の複数のファイル(あるフォルダの中にある全てのxlsファイル)を一括で、タブ区切りのテキストファイルに変換する必要があります。 このような操作をできるツールまたはマクロを教えていただけませんでしょうか。 ExcelはExcel2000を使っています。

  • マクロつきExcelファイルからマクロを一括して開放する方法ってないですか?

    処理を行うときにマクロを使うのですが、人に渡すときはマクロを開放してマクロのない文書を渡します。 しかし昔保存したExcelファイルでマクロを開放せずに保存しておいたファイルが多くあります。 特定のフォルダの中にあるExcelファイルでマクロつきファイルであればそれを一括して開放したいと考えているのですが何か方法ありますか?

  • エクセル マクロで特定ファイル名だけを開く

    エクセルのマクロで 特定のファイル名だけをフォルダの中から探して 開くというものを作りたいのですが うまくできません。 フォルダを指定して 「060927.xls」というエクセルファイルだけを 開きたいのですが この日付のところが毎日変わるので 「06XXXX.xls」というような 最初が06であと4つの文字が入ってるファイル名だけを 流動的に指定できるようにするには どのようなVBAマクロにすればよいのでしょうか? とても困っています。 是非教えてください!宜しくお願いします。

  • エクセルファイルの一括変換処理【マクロ?】

    こんにちは。 複数のエクセルファイルに、同じ処理を一括で行う方法について質問いたします。 現在フォルダの中に、県別に分かれた47個のエクセルファイルがございます。 --イメージ-------------------   北海道.xls   東京.xls   愛知.xls   大阪.xls    :   沖縄.xls ---------------------------- これらを使いやすくするために、現在以下の処理を行っています。 1)ファイル名を同じ法則性をもって変更する  (例:北海道.xls→「北海道3月実績」/沖縄.xls→「沖縄3月実績」) 2)同じ書式に変更する  (例:「北海道3月実績」の書式(罫線・列幅・フォント等の設定)をコピーし、     他の47ファイルを開き、『書式の貼り付け』で47回ペースト) 3)同じマクロを実行する  (例:エクセルファイルを開き、既存マクロ(改ページを自動挿入するマクロ)を     実行する作業を47回行う) 上記の単純作業を毎月毎月、47回行わなくてはなりません・・・。 簡単な作業ではありますが、時間がかかりますし、やっていく中でミスも発生いたします。 1つの同じフォルダに格納されたファイルに全く同じ作業をしていくので マクロか何かで自動化できないものか、と思案中です。 ■自動化がそもそも可能なのか? ■可能であればどうやったらできるのか? アイデアや知識をお持ちの方がいらっしゃいましたら 教えていただければ大変うれしく思います。 どうぞよろしくお願いいたします!!

  • Excel マクロのsaveasでファイル保存の方法で教えて下さい

    Excel2003で、USBメモリ上の2つのファイル(マクロを保存したmacro.xls及び作業を行うsagyo.xls)を開き、マクロをかけて、最後にxlsファイル形式で上書き保存したいのですが、 (1)ActiveWorkbook.Save で、上書き保存を行うと、なぜかUSBメモリ上にhtmlファイル保存されてしまいます。このため、xlsファイル形式保存をあえて明示し、saveasの既定値であるxlWorkbookNormalを指定し、 (2)ActiveWorkbook.SaveAs , FileFormat:=xlWorkbookNormal とすると、(カレントフォルダである)マイドキュメントに保存されてしまいます。 Q1.(1)のようになる原因は何でしょうか? Q2.USBメモリは、他のPC環境でも使うので、「saveas "F:\sagyo.xls"」などとドライブ指定せずに使いたいのですが、USBメモリ上に上書き保存するマクロの書き方はないでしょうか?

専門家に質問してみよう