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が混在しても順番に読み込みができるような工夫はできないものでしょうか。
よろしくお願いします。
No.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
ご回答いただきありがとうございます。
とても参考になりました。
既存のマクロに組み込むのに参考にさせていただきます。
>.xlsと .xlsxの両方のファイルがある場合には .xlsを
>優先して開きます。
このことを考えてませんでした。
勉強させていただきました。
ありがとうございます。
No.2
- 回答日時:
xlsとxlsxのファイルを読み込んで、ファイル名でオープンしたらよいでしょう。
No.1
- 回答日時:
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
ありがとうございます。
ご返答が遅くなりすみませんでした。
大変参考になりました。
既存のマクロに組み込むのには少し修正が必要なので
参考にさせていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/05/23 15:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
EXCELマクロでxlsとxlsxを開く方法
-
【Excel VBA】ブックを複数開い...
-
フォルダ内の全てのBookに同じ...
-
エクセル アプリケーションの...
-
VB2010でExcelの行をコピーして...
-
EXCEL VBA起動時の処理
-
フォルダ内の全ブックのシート...
-
エクセルVBAでブックを開くと処...
-
personal.xlsの削除方法
-
エクセルVBA Workbook変数に変...
-
Excelの一括印刷で通し番号をつ...
-
[Excel VBA] フォルダ内の複数...
-
同じ名前で拡張子が違うファイル
-
ファイル名を今日の日付、時刻...
-
エクセル終了時の保存確認メッ...
-
複数のデータ系列の線の太さを...
-
VBA マクロ実行時エラー’1004Ra...
-
VBAを一度起動するとずっと出て...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
エクセルVBA Workbook変数に変...
-
【Excel VBA】ブックを複数開い...
-
【ExcelVBA】指定の書式で、マ...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全ブックのシート...
-
EXCELマクロでxlsとxlsxを開く方法
-
他のBookのユーザー定義関数を使う
-
VBA、Excelのworkbook.open に...
-
すでに開いているブックのマク...
-
フォルダ内の全てのBookに同じ...
-
[Excel VBA] フォルダ内の複数...
-
personal.xlsの削除方法
-
excelマクロ、任意セルの値で名...
-
excelでハイパーリンク 別ブッ...
-
VBA セル入力された日付データ...
-
Excel マクロでファイル名を変...
-
EXCEL VBA起動時の処理
-
エクセルVBAでブックを開くと処...
おすすめ情報