開発環境:Excel 2013
他ブックから、複数シートのデータを取り込むマクロを作成しております。
VBA
1 Dim wbRead As Workbook 'ワークブック(読込) 2 Dim wbMe As Workbook 'ワークブック (自分) 3 dim varList as Variant 4 dim i as integer 5 6 Set wbMe = ThisWorkbook 7 Set wbRead = Workbooks.Open(ファイル名) 8 9 For i = 1 to シート数 10 With wbRead.Sheets(シート名(i)) 11 .Activate 12 13 'データ取込処理 14 .cells(1,1).CurrentRegion.select 15 Selection.Offset(1, 0).Select 16 Selection.Resize(Selection.Rows.Count - 1, Selection.Columns.Count).Select 17 varData = Selection 18 End With 19 20 wbMe.Activate 21 With wbMe.Sheets(シート名(i)) 22 .Activate 23 24 'データ書き込み処理 25 .cells(1,1).CurrentRegion.select 26 Selection.Offset(1, 0).Select 27 Selection.Resize(Selection.Rows.Count - 1, Selection.Columns.Count).Select 28 Selection = varData 29 End With 30 Next i 31 32 wbRead.Close SaveChanges:=False
このような処理を組んでいます。
(実際の読込処理、書込処理では取込データの加工や、書き込み位置の計算処理なども行っています)
対象シートをActivateの後に表からデータ部を配列化していますが、
データ書き込み処理でのActivateが動作されず、
書き込み処理が正常に行われません。
ただし、.Activateの箇所でブレイクポイントを貼って
デバッグで動作させる場合は、正常に動作します。
(.Activateでステップを進めると、
自ブックの対象シートが画面最善面に表示されます)
また、.Activate以外の箇所にブレイクポイントを張ると、
必ず読込ブックが最前面に居る状態でブレイクされます。
このような現象の際の対処法について、
御教授いただければ幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/26 07:41