前提
VBAで、あるフォルダに格納されている複数のブックの特定のシート(同一名・同一構造)からデータを抜き出し、
別のブックのシートに順次貼り付けて、それらを用いて集計を行いたいと考えております。
書式や文字列はうまく貼り付けられているようなのですが、
コピー元のシートで数式を含んでいるセルは、数式だけが貼り付けられて参照エラーとなり、値が貼り付けられていません。
実現したいこと
- コピー元のシート数式ではなく、値のみを貼り付けたい
試したこと
VBA
1Sub 複数のシートを一つのブックにまとめる() 2 Dim A 3 'フォルダ内のブック名を取得 4 A = Dir(ThisWorkbook.Path & "\対象シートフォルダ\*") 5 Do While A <> "" 6 'ブックを開く 7 Workbooks.Open ThisWorkbook.Path & "\対象シートフォルダ\" & A 8 With ActiveWorkbook 9 'シートをコピーして取得 10 .Worksheets("対象シート").Copy After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count) 11 'シート名をブック名に変更 12 ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = .Name 13 'On Error Resume Next 14 15 .Close False 'ブックを閉じる 16 End With 17 A = Dir() '次のブック名を取得 18 Loop 19End Sub 20
値のみを貼り付けるためには、PasteSpecial Paste:=xlPasteValues
などを用いれば良さそうということは調べました。
以下のブロックを含め、いくつかパターンを試しました。しかし、私の知識・経験不足で、どのように組み込めばよいかが分かりませんでした。
VBA
1 .Worksheets("対象シート").Copy After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).PasteSpecial Paste xlPasteValues
補足情報(バージョンなど)
Windows11, Excel2021
マクロの記録で、やりたい操作を記録して、どう書けばいいか調べましょう。
回答1件
あなたの回答
tips
プレビュー