[[20250716172731]] 『同じフォルダ内の特定のシート(指定をオブジェク』(neko) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『同じフォルダ内の特定のシート(指定をオブジェクト名)をまとめる』(neko)

同じフォルダ内の複数あるExcelファイル(xlsm)の特定のシートをマクロが記載されているファイルにまとめたい。
コピーされたシート名はファイル名と同じにする。
また、シートの指定はオブジェクト名にしたい。
以上の要件で、コードを書きたいのですが、tempSheetName = wbSource.VBProject.VBComponents("Worksheet").Properties("sh_01kaisou")
と書いても Nothing になってしまいます。
シートオブジェクト名が"sh_01kaisou"とあるシートだけを1つのファイルにまとめたいです。
分かる方がいましたら、教えてください<m(__)m>

    Dim folderPath As String

    Dim fileName As String

    Dim wbSource As Workbook

    Dim wsSource As Worksheet

    Dim newSheet As Worksheet

    Dim tempSheetName As String

    ' マクロファイルと同じフォルダを使用

    folderPath = ThisWorkbook.Path & "\"

    ' 対象ファイルをループ(.xlsx形式)

    fileName = Dir(folderPath & "*.xlsm")

    Do While fileName <> ""

        ' マクロファイル自身はスキップ

        If fileName <> ThisWorkbook.Name Then

            Set wbSource = Workbooks.Open(folderPath & fileName)

            On Error Resume Next

            tempSheetName = wbSource.VBProject.VBComponents("Worksheet").Properties("sh_01kaisou")

            Set wsSource = wbSource.tempSheetName

            On Error GoTo 0

            If Not wsSource Is Nothing Then

                ' マクロファイル末尾にコピー

                wsSource.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

                Set newSheet = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

                newSheet.Name =  ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name 

            End If

            wbSource.Close SaveChanges:=False

        End If

        fileName = Dir

    Loop

    MsgBox "シートの統合が完了しました!", vbInformation

End Su

< 使用 Excel:Excel2019、使用 OS:Windows11 >


 単純に開いたブックのシートをループしてCodeNameで判断した方が確実だと思いますが?
(jindon) 2025/07/16(水) 18:30:57

 私もjindonさんの考えに賛成ですが、もし今の方針を継続するなら、
     tempSheetName = wbSource.VBProject.VBComponents("sh_01kaisou").Properties("Name")
     Set wsSource = wbSource.Worksheets(tempSheetName)
 ということになるのかもしれません。    
(xyz) 2025/07/16(水) 19:30:21

jindonさん、xyzさん、返信ありがとうございます<m(__)m>
jindonさんの方法で、できました。xyzさんもご回答ありがとうございました!!
(neko) 2025/07/17(木) 11:25:10

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.