dポイントプレゼントキャンペーン実施中!

下記のマクロを実行すると
他のブックの指定範囲を作業ブックの指定範囲にコピペできます。
このマクロだとコピー元のセル値に設定している数式を文字としてコピーしてしまいます、
このコードを変更してコピペした場合に、コピー元のセル値に表示した文字及び数式をコピー先にコピペ出来る方法を教えてください。
現状のマクロ
Sub 提出シート貼り付け()

Dim Wb1, Wb2
Set Wb1 = Workbooks(1) 'このブック
Set Wb2 = Workbooks(2) '別ブック

'セルの値を取得する
Wb2.Worksheets("提出シート").Range("B1:H37").Copy Wb1.Worksheets("受付").Range("B1:H37")

End Sub
以上です。
よろしくお願いいたします。

A 回答 (1件)

Sub 提出シート貼り付け()


Dim Wb1 As Workbook, Wb2 As Workbook
Set Wb1 = Workbooks(1) 'このブック
Set Wb2 = Workbooks(2) '別ブック

'セルの値、数式、書式を含めて取得する
Wb2.Worksheets("提出シート").Range("B1:H37").Copy
Wb1.Worksheets("受付").Range("B1:H37").PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False 'コピー範囲の点線を解除する
End Sub

ご提示いただいたマクロは、コピー元のセルの値だけをコピーしていますが、数式や書式も含めてコピーするには、少し変更が必要です。`Range.Copy`メソッドは、範囲全体をコピーするため、数式や書式も含まれます。

以下に、数式と書式を含めた範囲をコピーするマクロを示します:

```vba
Sub 提出シート貼り付け()
Dim Wb1 As Workbook, Wb2 As Workbook
Set Wb1 = Workbooks(1) 'このブック
Set Wb2 = Workbooks(2) '別ブック

'セルの値、数式、書式を含めて取得する
Wb2.Worksheets("提出シート").Range("B1:H37").Copy
Wb1.Worksheets("受付").Range("B1:H37").PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False 'コピー範囲の点線を解除する
End Sub
```

このマクロは以下のように動作します:
1. `Range("B1:H37").Copy` でコピー元の範囲をコピーします。これにはセルの値、数式、書式が含まれます。
2. `Wb1.Worksheets("受付").Range("B1:H37").PasteSpecial Paste:=xlPasteAll` でコピー先の範囲にすべての内容(値、数式、書式)を貼り付けます。
3. `Application.CutCopyMode = False` でコピー範囲の点線を解除します。

このコードにより、コピー元のセルに表示されている文字(値)や数式がそのままコピー先に貼り付けられます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
早速試してみます。

お礼日時:2024/06/13 15:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A