回答編集履歴
2
呼び出される方を修正しない場合
    
        answer	
    CHANGED
    
    | 
         @@ -16,4 +16,37 @@ 
     | 
|
| 
       16 
16 
     | 
    
         
             
            Dim subbook As Workbook
         
     | 
| 
       17 
17 
     | 
    
         
             
            Set subbook = Workbooks.Open(FileName, UpdateLinks:=1)
         
     | 
| 
       18 
18 
     | 
    
         
             
            subbook.Close SaveChanges:=True
         
     | 
| 
      
 19 
     | 
    
         
            +
            ```
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            呼び出される側を修正したくない場合、以下になります
         
     | 
| 
      
 23 
     | 
    
         
            +
            ```VBA
         
     | 
| 
      
 24 
     | 
    
         
            +
                       If IsBookOpen = False Then
         
     | 
| 
      
 25 
     | 
    
         
            +
                       
         
     | 
| 
      
 26 
     | 
    
         
            +
                            Dim xlApp As Excel.Application
         
     | 
| 
      
 27 
     | 
    
         
            +
                            If xlApp Is Nothing Then
         
     | 
| 
      
 28 
     | 
    
         
            +
                                Set xlApp = New Excel.Application
         
     | 
| 
      
 29 
     | 
    
         
            +
                                xlApp.Visible = True
         
     | 
| 
      
 30 
     | 
    
         
            +
                            End If
         
     | 
| 
      
 31 
     | 
    
         
            +
                            xlApp.Workbooks.Open FSO.BuildPath(Fol, FileName), UpdateLinks:=1
         
     | 
| 
      
 32 
     | 
    
         
            +
                           
         
     | 
| 
      
 33 
     | 
    
         
            +
                        End If
         
     | 
| 
      
 34 
     | 
    
         
            +
                   
         
     | 
| 
      
 35 
     | 
    
         
            +
                    End If
         
     | 
| 
      
 36 
     | 
    
         
            +
                   
         
     | 
| 
      
 37 
     | 
    
         
            +
                    Application.Wait Now() + TimeValue("00:00:10")
         
     | 
| 
      
 38 
     | 
    
         
            +
                   
         
     | 
| 
      
 39 
     | 
    
         
            +
                    FileName = Dir()
         
     | 
| 
      
 40 
     | 
    
         
            +
               
         
     | 
| 
      
 41 
     | 
    
         
            +
                Loop
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            Next
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            Set GetFolder = Nothing
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            If Not xlApp Is Nothing Then
         
     | 
| 
      
 48 
     | 
    
         
            +
                xlApp.Quit
         
     | 
| 
      
 49 
     | 
    
         
            +
            End If
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
       19 
52 
     | 
    
         
             
            ```
         
     | 
1
他の原因を追記
    
        answer	
    CHANGED
    
    | 
         @@ -3,4 +3,17 @@ 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            Endの使用をやめて、Exit Sub などを使って処理を終了させる必要があるかと思います。
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            もしかしたら他にもVBAの実行を止める処理もあるかもしれませんが。
         
     | 
| 
      
 6 
     | 
    
         
            +
            もしかしたら他にもVBAの実行を止める処理もあるかもしれませんが。
         
     | 
| 
      
 7 
     | 
    
         
            +
            (追記)
         
     | 
| 
      
 8 
     | 
    
         
            +
            起動時のマクロで起動したファイル自身をクローズしている場合もありました。
         
     | 
| 
      
 9 
     | 
    
         
            +
            「起動時のマクロで起動したファイル自身をクローズ」するのをやめて
         
     | 
| 
      
 10 
     | 
    
         
            +
            呼び出し側でクローズする必要があります。
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            今回の事例であれば
         
     | 
| 
      
 13 
     | 
    
         
            +
            「起動時のマクロで起動したファイル自身をクローズ」している箇所をカットorコメントアウトし
         
     | 
| 
      
 14 
     | 
    
         
            +
            呼び出し時のコードを以下のようにすることになると思います。
         
     | 
| 
      
 15 
     | 
    
         
            +
            ```VBA
         
     | 
| 
      
 16 
     | 
    
         
            +
            Dim subbook As Workbook
         
     | 
| 
      
 17 
     | 
    
         
            +
            Set subbook = Workbooks.Open(FileName, UpdateLinks:=1)
         
     | 
| 
      
 18 
     | 
    
         
            +
            subbook.Close SaveChanges:=True
         
     | 
| 
      
 19 
     | 
    
         
            +
            ```
         
     |