
下記のマクロは先日教えて頂いたマクロで、マクロを実行すると
同じ作業フォルダ内にある別ブック(拡張子が.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
よろしくお願いいたします。
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を探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
[Excel]ADODBでNull変換されて...
-
エクセルVBAでテキストボックス...
-
【Excel VBA】書き込み先ブック...
-
【マクロ】アクティブセルにブ...
-
VBA シートをコピーする際に Co...
-
VBAの参照先のファイル名をセル...
-
【マクロ】コピーでは、ブック...
-
現在開いているbook全てを対象...
-
【ExcelVBA】zip圧縮されたCSV...
-
日付ごとの集計マクロ
-
Excelマクロ 該当する値の行番...
-
VBAで別ブックのシートを指定し...
-
チェックボックスをクリックし...
-
エクセルで複数のシートのクリ...
-
「段」と「行」の違いがよくわ...
-
【マクロ】実行時エラー '424':...
-
Excelで、あるセルの値に応じて...
-
vba 2つの条件が一致したら...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
【Excel VBA】書き込み先ブック...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
[Excel]ADODBでNull変換されて...
-
Excelファイルを開くとき、読み...
-
VBA 実行時エラー 2147024893
-
Excelマクロ 該当する値の行番...
-
Excel にて、 リストボックスの...
-
VBS Bookを閉じるコード
-
複数のエクセルファイルとシー...
-
【ExcelVBA】インデックスが有...
おすすめ情報
回答ありがとうございます。
拡張子は(.xlsx)と(.xlsm)だけに限定でお願いいたします。
よろしくお願いいたします。