• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA 数式を含めたコピー貼り付け)

EXCEL VBA 数式を含めたコピー貼り付け

このQ&Aのポイント
  • VBAを使用してブック間で数式を含むコピー貼り付けをしたいです。
  • 特定のシートのデータを担当者ごとにファイル分割し、数式を保持したまま貼り付けたいです。
  • 現在のコピーペーストでは値が貼り付けられてしまうため、コピーペーストのロジックを修正したいです。

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

  • ベストアンサー
  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.1

私のバージョンは2007です。VBAは独学なので間違っているかもしれませんが。 Copy DestinationのDestinationを使用すると値だけのコピーになるので、copyだけにしてみましたが、値だけしかコピー出来ませんでした。 どうもwith worksheet内のcopyでは無理だと判断しました。 オートフィルを使用しない下記方法では数式もコピー可能です。 Sub sample() Dim s0, nwk As Worksheet Dim h Dim i, j, LastRow, cnt As Long Application.DisplayAlerts = False Worksheets("データ").Copy before:=Worksheets(1) Set s0 = Worksheets(1) Do Until Application.CountA(s0.Range("A:A")) < 2 h = s0.Range("A2").Value '検索ワードの変数hと同じ文字のセル数取得 cnt = WorksheetFunction.CountIf(s0.Range("A:A"), h) i = cnt + 1 With s0 Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = h End With Set nwk = Worksheets(h) 'データシートのA列の最終行取得 LastRow = s0.Cells(Rows.Count, 1).End(xlUp).Row j = LastRow '1行目コピー s0.Range("A1:C1").Copy nwk.Range("A1") Do Until j = 1 'A列のセルデータが変数hと同じ場合コピペ及び行削除 If s0.Cells(j, 1).Value = h Then s0.Range("A" & j & ":C" & j).Copy nwk.Range("A" & i) i = i - 1 s0.Rows(j).Delete End If j = j - 1 Loop With nwk .Move ActiveWorkbook.SaveAs Filename:="C:\dumy\" & h & ".xlsx" ActiveWorkbook.Close False End With Loop s0.Delete Application.DisplayAlerts = False MsgBox "データをEXCELに表示します。" End Sub 下記のs0シートのコピー元セル列2ケ所を修正下さい。現状A~C列になっています。 コピー後のデータは行削除にしてあります。ダミーシートをコピーされてるようですから問題ないと思いますが、支障あれば修正下さい。 1行目コピー s0.Range("A1:C1").Copy nwk.Range("A1") Do Until j = 1 'A列のセルデータが変数hと同じ場合コピペ及び行削除 If s0.Cells(j, 1).Value = h Then s0.Range("A" & j & ":C" & j).Copy nwk.Range("A" & i)

yakkun2338
質問者

お礼

dogs_catsさん、ご連絡ありがとうございました!! 連休に入ってしまいご連絡が遅くなりまして申し訳ございませんでした。 ご教授いただきましたロジックにて思い通りの動きになりました! 本当にありがとうございました!!助かりました。 いつも細かくご丁寧なご説明、ありがとうございます!! このたびはありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A