こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBA、多数シートの数値情報を1枚の表に

私はエクセルVBAを用いて、同じ様式で整理された多数シート(200枚程度で、随時増える)に記載の数値情報(計算結果)を、新たなシートもしくはブック上に、整理したいと考えています。
当方が見様見真似で試したものは、ほぼ期待通り動いたのですが、貼り付けしたものが計算式になってしまいます。
他事例を見る限り、コピー時にValueを用いるか、貼り付け時にPasteSpecial (xlPasteValues)を用いると書いてあります。
しかし、この方法だと張り付けるときにRangeで範囲を指定した時に、その数値を明確にしないといけないようです。
できれば、あいまいなシート数のまま処理したいと考えています。
どなたか詳しい方、時間があるときに、良い方法をご教示いただけますと幸いです。
なお、見よう見まねで試したのは、下記のとおりです。
よろしくお願いします。

Sub test()
Dim sh As Worksheet
Dim lngR As Long
Dim newWB As Workbook
Set newWB = Workbooks.Add
For Each sh In ThisWorkbook.Worksheets
lngR = lngR + 1
sh.Range("A1").Copy newWB.Sheets(1).Cells(lngR, 1)
sh.Range("A2").Copy newWB.Sheets(1).Cells(lngR, 2)
Next sh
End Sub

投稿日時 - 2018-11-07 20:07:39

QNo.9555531

困ってます

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

200枚ぐらいのシートに埋まっている(計算式ではなく)
計算結果をかき集めるということなら、

Sub test()
 Dim sh As Worksheet
 Dim lngR As Long
 Dim newWB As Workbook

 Set newWB = Workbooks.Add
 For Each sh In ThisWorkbook.Worksheets
  lngR = lngR + 1
  newWB.Sheets(1).Cells(lngR, 1).Value = sh.Range("A1").Value
  newWB.Sheets(1).Cells(lngR, 2).Value = sh.Range("A2").Value
 Next sh
End Sub
とすれば済むように思います。

投稿日時 - 2018-11-07 20:41:36

お礼

ご教示誠に感謝いたします。
おかげさまでうまく動きました。
大変助かりました。

投稿日時 - 2018-11-07 22:42:27

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問