![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
下記のマクロは先日教えて頂いたマクロで、マクロを実行すると
同じ作業フォルダ内にある別ブック(拡張子が.xlsx)を開きコピー範囲を指定出来るようになっております。
稀に、(拡張子が.xlsm)の場合もあり、拡張子が(.xlsx又は.xlsm)の両方に対応できるように変更出来る方法があれば教えてください。
尚、フォルダ内には、作業ブック(マクロ設定ブック)とコピー元のExcelファイル2つしかありません。
よろしくお願いいたします。
現状のマクロ
Sub 提出シートコピー範囲()
Dim folderPath As String
Dim fileName As String
Dim ws As Worksheet
folderPath = ThisWorkbook.Path & "\"
'作業フォルダ内にはマクロを設定しているコピー先のブックとコピー元の
'○〇(提出用).xlsxの 2つ のExcelファイルしかありません。
fileName = Dir(folderPath & "*.xlsx")
If fileName <> "" Then
'別ブック ○〇(提出用).xlsx
Set Wb2 = Workbooks.Open(folderPath & fileName)
On Error Resume Next
Set ws = Wb2.Worksheets("提出シート")
If Err.Number <> 0 Then
MsgBox "コピー元ブックの提出シートが見つかりません"
On Error GoTo 0
Wb2.Close False
End
End If
'セルの値を取得する
ws.Range("B1:H47").Copy
Else
MsgBox "コピー元ブックが見つかりません": End
End If
End Sub
よろしくお願いいたします。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_09.png?8acaa2e)
- 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
- 今の自分の気分スタンプを選ぼう!
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No2です。
>拡張子は(.xlsx)と(.xlsm)だけに限定でお願いいたします。
了解しました。
拡張子(.xlsm)を含めると、自分自身のファイル名(マクロを格納したファイル)も取得してしまうので、これは、除く必要があります。
又、Dir関数で拡張子を(.xlsmと.xlsx)だけに限定して指定することはできないので、(.xls?)にして取得します。(?は任意の1文字)
したがって、余分な拡張子のものも取得する可能性があるので(例えば.xlsd等)、拡張子が(.xlsmと.xlsx)だけを取得対象ファイルとしてオープンするようにします。
以下のようにしてください。
Sub 提出シートコピー範囲()
Dim folderPath As String
Dim fileName As String
Dim ws As Worksheet
folderPath = ThisWorkbook.Path & "\"
'作業フォルダ内にはマクロを設定しているコピー先のブックとコピー元の
'○〇(提出用).xlsxの 2つ のExcelファイルしかありません。
fileName = Dir(folderPath & "*.xls?")
Do While fileName <> ""
If CheckName(fileName) = True Then Exit Do
fileName = Dir()
Loop
If fileName <> "" Then
'別ブック ○〇(提出用).xlsx
Set Wb2 = Workbooks.Open(folderPath & fileName)
On Error Resume Next
Set ws = Wb2.Worksheets("提出シート")
If Err.Number <> 0 Then
MsgBox "コピー元ブックの提出シートが見つかりません"
On Error GoTo 0
Wb2.Close False
End
End If
'セルの値を取得する
ws.Range("B1:H47").Copy
Else
MsgBox "コピー元ブックが見つかりません": End
End If
End Sub
Private Function CheckName(ByVal fileName As String) As Boolean
CheckName = False
If fileName = ThisWorkbook.Name Then Exit Function
CheckName = True
If LCase(Right(fileName, 5)) = ".xlsx" Then Exit Function
If LCase(Right(fileName, 5)) = ".xlsm" Then Exit Function
CheckName = False
End Function
No.2
- 回答日時:
念のため、確認ですが、今後、拡張子が、(.xls)とか(.xlsb)とかも含めたいということはないのでしょうか。
拡張子は(.xlsx)と(.xlsm)だけに限定して良いのでしょうか。特に、(.xls)は古い形式のexcelファイルですが、これを使用する方が、たまに見受けられます。
下記が、excelでサポートしているファイルの拡張子の一覧です。
https://support.microsoft.com/ja-jp/office/excel …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/07/01 15:23
- Visual Basic(VBA) Excelのマクロについて教えてください。 2 2024/06/14 16:38
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2024/07/01 09:07
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2024/06/18 09:20
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2024/06/13 13:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/04/01 17:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロについて教え...
-
ExcelVBA修正のお願い
-
エクセルのマクロについて教え...
-
VBAコードについて教えてくださ...
-
[vb.net] 起動したFrom2を閉じ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBA 別ブックからコピペしたい...
-
重複確認
-
Excel(M365) Vlookup/セル反転(...
-
エクセルのVBAコードについて教...
-
コードを直していただきたいで...
-
{ CONTROL Forms.Label.1}が...
-
マクロの記録を使用したマクロ...
-
Excel VBA 定義されたプロージ...
-
VBA 複数の各シートに行を追加...
-
配列のペースト出力結果の書式...
-
VBA実行後に元のセルに戻りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAなくなるの?
-
VBAでCOPYを繰り返すと、処理が...
-
vba 削除
-
プログラミング
-
Excelのマクロについて教えてく...
-
Excelのマクロについて教えてく...
-
エクセルのVBAコードについて教...
-
久しぶりのプログラミング
-
ユーザーフォームに別シートか...
-
エクセルVBAコードで教えて下さ...
-
VBA 別ブックからコピペしたい...
-
ExcelのVBAコードについて教え...
-
VBAコードについて教えてくださ...
-
vba アクティブシートの名前変...
-
Excelのマクロについて教えてく...
-
エクセルVBA
-
Geogebraの操作方法について
-
マクロの記録を使用したマクロ...
-
Excel(M365) Vlookup/セル反転(...
-
Excel 範囲指定スクショについ...
おすすめ情報
回答ありがとうございます。
拡張子は(.xlsx)と(.xlsm)だけに限定でお願いいたします。
よろしくお願いいたします。