• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL2000とEXCEL2003のVBAについて)

EXCEL2000とEXCEL2003のVBAについて理解しましょう

このQ&Aのポイント
  • EXCEL2000とEXCEL2003のVBAにおいて、特定のコードが正しく実行されない問題が発生しています。
  • 問題が発生しているコードは「.UsedRange.Copy myb」であり、エラーが出ずにファイルは開かれているにも関わらずコピーが行われない状態です。
  • EXCEL2000でこのコードを実行すると正常にコピーが行われるため、問題点はEXCEL2003側にある可能性があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 まず、今回のマクロだけでは、 >Set rngsaki = Workbooks("残高集計用.xls").Worksheets(3).Range("a2") これは、生きていないですね。 実際に試したわけではないのですが、バージョンによって違いが出るとも思えないですね。 .Worksheets("Sheet1").UsedRange.Copy ただ、ここが気になりますね。空の場合は、「1セル」しかコピーしませんが、それを貼り付けても、無駄になってしまいます。 絶対に、空はないならよいのですが、本当は、 If WorksheetFunction.CountA(Worksheets("Sheet1").Cells) >0 Then などで、シートを検査したほうがよいと思いますね。なお、必ず、Sheet1 というシートがあるという前提です。 それから、最後尾の次になるから、myb.Offset(1) でしょうね。 正しく動くかは分かりませんが、書き換えてみました。 Sub 日別データ読込R()   Dim DestBook As Workbook   Dim pathmacrobook As String   Dim namebook As String   Dim myb As Range      pathmacrobook = ThisWorkbook.Path & "\CSV読込データ12\"      Set DestBook = Workbooks("残高集計用.xls")   namebook = Dir(pathmacrobook & "*.xls")      Do While Not namebook = ""     Set myb = DestBook.Worksheets(3).Range("A65536").End(xlUp)     With Workbooks.Open(pathmacrobook & namebook)        On Error Resume Next         .Worksheets("Sheet1").UsedRange.Copy myb.Offset(1)        On Error GoTo 0        .Close False     End With     namebook = Dir()   Loop   Set DestBook = Nothing   MsgBox "完了しました" End Sub

mimoule1998
質問者

お礼

ありがとうございます!! うまく動きました。