プロが教える店舗&オフィスのセキュリティ対策術

EXCEL マクロでxlsとxlsxを両方開く方法。
お世話になります。

エクセル マクロについてです。

複数の注文書をひとつのブックにまとめるマクロを使用しています。
注文書は同一の書式で部分的にセルの内容が違うだけです。

今まではxlsの形式で対応をしておりましたが、最近、xlsxの形式も増えてきて
手間がかかるようになってしまいました。

For i = 0 To 100

sName = Format(i, "000")
On Error Resume Next
Set wb = Nothing
Set wb = Application.Workbooks.Open(sPath & sName & ".xls", UpdateLinks:=0)

現在は000から001、002、・・・・・・とファイルを順次開いていくのですが
xlsとxlsxが混在しても順番に読み込みができるような工夫はできないものでしょうか。

よろしくお願いします。

A 回答 (3件)

こんにちは



Dir(パス\ファイル名)を実行して、""が返ってきたらファイルが存在しません。

これをIFでsName.xls と sName.xlsx について調べて、存在する方
を開きます。

下記の例では、.xlsと .xlsxの両方のファイルがある場合には .xlsを
優先して開きます。

Sub Sample()

Dim sPath As String
Dim sName As String

Dim i As Integer

On Error Resume Next

sPath = "C:\Sample\"

For i = 0 To 100

sName = sPath & Format(i, "000")

If Dir(sName & ".xls") <> "" Then

Workbooks.Open sName & ".xls"

ElseIf Dir(sName & ".xlsx") <> "" Then

Workbooks.Open sName & ".xlsx"

End If

Next i

End Sub
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。

とても参考になりました。
既存のマクロに組み込むのに参考にさせていただきます。

>.xlsと .xlsxの両方のファイルがある場合には .xlsを
>優先して開きます。

このことを考えてませんでした。
勉強させていただきました。

ありがとうございます。

お礼日時:2011/07/19 16:27

xlsとxlsxのファイルを読み込んで、ファイル名でオープンしたらよいでしょう。

    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございました。
参考にさせていただきます。

ありがとうございます。

お礼日時:2011/07/19 16:23

xlsとxlsxの必ずどちらかしか無いのでしたら,ある方を調べて開けば良いですね。



sub macro1()
dim i
dim myPath, myFile
dim myBook
mypath = "c:\test\"
for i = 0 to 100
myfile = mypath & format(i, "000")
myfile = myfile & iif(dir(myfile & ".xls") = "",".xlsx", ".xls")
set mybook = workbooks.open(filename:=myfile, updatelinks:=false)
next i
end sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご返答が遅くなりすみませんでした。
大変参考になりました。

既存のマクロに組み込むのには少し修正が必要なので
参考にさせていただきます。

ありがとうございました。

お礼日時:2011/07/19 16:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています