VBAで自動化 VBA一覧 セル・値の取得と貼り付け 貼り付け

【VBA】別シートへ値貼り付けする方法|現在のシートを転記

Excel VBAで作業していると、現在開いているシートのデータを、別シートへそのまま貼り付けたい場面は非常に多くあります。
たとえば、入力用シートから集計用シートへ転記したり、加工前データを保存用シートへ退避したり、日次処理の結果を別シートに残したりするケースです。

ただし、VBAで貼り付け処理を書く場合、単純にコピーして貼り付けるだけでは、書式や数式まで一緒に移動してしまうことがあります。
実務では、「見た目ではなく値だけを移したい」という場面が多いため、値貼り付けの考え方を理解しておくことが重要です。

この記事では、現在のシートから別シートへ値だけを貼り付けるVBAの書き方を、基本コードから実務で使いやすい設計まで解説します。

目次

✅ VBAで現在のシートから別シートへ値貼り付けする基本

現在のシートから別シートへ値貼り付けする処理は、一見すると簡単に見えます。
しかし、実務では「現在のシート」がどのシートを指しているのかを曖昧にしたままコードを書くと、思わぬシートからデータを転記してしまうことがあります。
特に、複数シートを開いた状態でマクロを実行する場合、アクティブシート依存のコードは事故につながりやすいです。
また、コピー貼り付けを使うと、値だけでなく書式・数式・罫線まで影響する場合があり、転記先のレイアウトを壊す原因にもなります。
そのため、値だけを安全に移す場合は、コピー操作ではなく .Value を使った代入が実務では扱いやすいです。
まずは、現在のシートの値を別シートへ貼り付ける基本形から確認していきましょう。

・現在のシートから別シートへ値を移す基本コード

以下のコードでは、現在アクティブになっているシートの A1:C10 の値を、別シート「転記先」の A1:C10 へ値だけ貼り付けます。

Sub PasteValuesFromCurrentSheetToAnotherSheet()

    Dim sourceWorksheet As Worksheet
    Dim destinationWorksheet As Worksheet

    ' 現在操作対象になっているシートを転記元として扱う
    Set sourceWorksheet = ActiveSheet

    ' 値を貼り付ける転記先シートを指定する
    Set destinationWorksheet = ThisWorkbook.Worksheets("転記先")

    ' 値だけを転記する
    destinationWorksheet.Range("A1:C10").Value = sourceWorksheet.Range("A1:C10").Value

End Sub

・この書き方が実務で使いやすい理由

このコードでは、CopyPasteSpecial を使わず、セル範囲の .Value を直接代入しています。
この方法のメリットは、値だけを移せるため、転記先の書式を壊しにくい点です。

たとえば、転記先シートにあらかじめ罫線・背景色・入力欄のレイアウトを作っている場合、コピー貼り付けを使うと見た目まで上書きされる可能性があります。
一方、.Value 代入であれば、基本的に値だけを反映できるため、帳票や管理表の形式を維持しやすくなります。

また、クリップボードを使わないため、処理が安定しやすく、他の作業への影響も少なくなります。
「値だけを貼り付けたい」という目的であれば、まず検討したい書き方です。


✅ VBAでCopyとPasteSpecialを使って値貼り付けする方法

VBAで値貼り付けと聞くと、Excelの手作業と同じように「コピーして形式を選択して貼り付け」を再現しようとする方も多いです。
実際、CopyPasteSpecial を使えば、Excel上の操作に近い形で値貼り付けを行うことができます。
ただし、実務で長く使うマクロでは、クリップボードを使う処理はやや不安定になる場合があります。
また、コピー元や貼り付け先の選択状態に依存したコードを書くと、画面操作の影響を受けやすくなります。
そのため、この方法は「Excel操作に近い書き方として理解する」には便利ですが、常に最優先とは限りません。
ここでは、CopyとPasteSpecialを使った値貼り付けの基本と、実務で注意すべき点を確認していきます。

・PasteSpecialで値だけ貼り付けるコード

Sub PasteValuesUsingPasteSpecial()

    Dim sourceWorksheet As Worksheet
    Dim destinationWorksheet As Worksheet

    Set sourceWorksheet = ActiveSheet
    Set destinationWorksheet = ThisWorkbook.Worksheets("転記先")

    ' コピー元の範囲をコピーする
    sourceWorksheet.Range("A1:C10").Copy

    ' 値だけを貼り付ける
    destinationWorksheet.Range("A1").PasteSpecial Paste:=xlPasteValues

    ' コピー状態を解除する
    Application.CutCopyMode = False

End Sub

・Copyを使う方法のメリット

PasteSpecial Paste:=xlPasteValues は、Excelの「値の貼り付け」と同じ感覚で理解しやすい書き方です。
そのため、VBAに慣れていない方でも処理のイメージをつかみやすいというメリットがあります。

また、値貼り付け以外にも、

  • 書式だけ貼り付ける
  • 数式だけ貼り付ける
  • 列幅を貼り付ける

といった拡張がしやすい点も特徴です。

・実務ではValue代入の方が安全な場面が多い

一方で、単純に値だけを転記したい場合は、先ほどの .Value 代入の方がシンプルです。
Copy を使うと、クリップボードを経由するため、処理中に別のコピー操作が入った場合や、他のマクロと組み合わせた場合に影響を受ける可能性があります。

また、PasteSpecial を使うときは、貼り付け先の開始セルを正しく指定する必要があります。
範囲サイズが想定と違う場合、貼り付け位置がずれたり、意図しないセルに値が入ったりすることもあります。

そのため、値だけを安定して転記したい場合は、.Value 代入を基本として考えるのがおすすめです。

PasteSpecialを使うと、単なる値貼り付けだけでなく、書式・数式・列幅など、貼り付け内容を細かく制御できるようになります。
実務では、「値だけ」「書式だけ」「列幅も含めて貼り付けたい」など、状況によって使い分ける場面も非常に多いです。
PasteSpecialメソッドをより実践的に活用する方法については、こちらの記事もぜひ参考にしてください。

【VBA】Excel VBAのPasteSpecialメソッドの活用方法


✅ VBAで現在のシートの最終行まで別シートへ値貼り付けする方法

実務では、固定範囲の A1:C10 だけを貼り付けるケースよりも、データ量が毎回変わるケースの方が多いです。
たとえば、今日の売上一覧、在庫データ、申込者リスト、CSV取込データなどは、行数が日によって変動します。
このような場合に固定範囲でコードを書くと、データが足りなかったり、不要な空白行まで転記したりする原因になります。
また、最終行の取得方法を誤ると、途中に空白があるデータで範囲を正しく取得できないこともあります。
実務で使うなら、対象列を決めて最終行を取得し、その範囲を別シートへ貼り付ける設計が安全です。
ここでは、現在のシートの最終行までを自動判定して、別シートへ値貼り付けする方法を確認します。

・最終行まで値貼り付けするコード

以下のコードでは、現在のシートのA列を基準に最終行を取得し、A1:C最終行 の範囲を「転記先」シートへ貼り付けます。

Sub PasteValuesUntilLastRow()

    Dim sourceWorksheet As Worksheet
    Dim destinationWorksheet As Worksheet
    Dim lastRow As Long
    Dim sourceRange As Range
    Dim destinationRange As Range

    Set sourceWorksheet = ActiveSheet
    Set destinationWorksheet = ThisWorkbook.Worksheets("転記先")

    ' A列を基準に最終行を取得する
    lastRow = sourceWorksheet.Cells(sourceWorksheet.Rows.Count, "A").End(xlUp).Row

    ' 転記元の範囲を設定する
    Set sourceRange = sourceWorksheet.Range("A1:C" & lastRow)

    ' 転記先の範囲を、転記元と同じサイズで設定する
    Set destinationRange = destinationWorksheet.Range("A1").Resize(sourceRange.Rows.Count, sourceRange.Columns.Count)

    ' 値だけを転記する
    destinationRange.Value = sourceRange.Value

End Sub

・Resizeを使うと範囲サイズを合わせやすい

このコードでは、貼り付け先に Resize を使っています。
これは、転記元の行数・列数に合わせて、転記先範囲の大きさを自動調整するためです。

たとえば、転記元が A1:C20 なら、貼り付け先も3列×20行になります。
転記元が A1:C100 に増えても、コードの修正は不要です。

このように、データ量が変わる処理では、固定範囲ではなく、取得した範囲に合わせて貼り付け先を決める方が保守しやすくなります。

Resizeメソッドを使えるようになると、転記元のデータ量に合わせて貼り付け範囲を自動調整できるようになります。
特に実務では、毎回行数が変わるデータを扱うことが多いため、固定範囲ではなく「サイズを動的に合わせる設計」が非常に重要です。
Resizeメソッドの基本から実務的な活用方法まで詳しく知りたい方は、こちらの記事もぜひ参考にしてください。

【VBA】Excel VBAで.Resizeメソッドを活用する方法を徹底解説

・最終行の基準列は実務に合わせて決める

最終行を取得するときは、どの列を基準にするかが重要です。
今回のコードではA列を基準にしていますが、A列に空白が入る可能性がある場合は、別の列を基準にした方が安全です。

たとえば、商品コードが必ず入る列、社員番号が必ず入る列、日付が必ず入る列など、空白になりにくい列を基準にします。
この判断を間違えると、データの途中までしか転記されないことがあります。

最終行の取得は、VBAでデータ転記や集計を行う際に非常によく使われる重要な処理です。
ただし、どの列を基準にするかによって取得結果が変わるため、実務では「空白になりにくい列」を選ぶ考え方が重要になります。
Rowsを使った行指定や最終行取得の基本については、こちらの記事もぜひ参考にしてください。

【VBA】Rowsの基本的な使い方|行指定・複数行・最終行取得まで解説


✅ VBAで貼り付け先シートの既存データをクリアしてから値貼り付けする方法

別シートへ値貼り付けする場合、前回のデータが残ったままになることがあります。
たとえば、前回は100行、今回は70行しかない場合、71行目以降に古いデータが残ってしまいます。
これを放置すると、集計結果や確認作業で誤った判断につながる可能性があります。
特に、貼り付け先シートを集計や報告に使っている場合、古いデータが混ざるのは非常に危険です。
そのため、実務では「貼り付け前に転記先をクリアするかどうか」を必ず設計しておく必要があります。
ここでは、既存データを削除してから、現在のシートの値を別シートへ貼り付ける方法を確認します。

・転記先をクリアしてから値貼り付けするコード

Sub ClearAndPasteValuesToAnotherSheet()

    Dim sourceWorksheet As Worksheet
    Dim destinationWorksheet As Worksheet
    Dim lastRow As Long
    Dim sourceRange As Range
    Dim destinationRange As Range

    Set sourceWorksheet = ActiveSheet
    Set destinationWorksheet = ThisWorkbook.Worksheets("転記先")

    lastRow = sourceWorksheet.Cells(sourceWorksheet.Rows.Count, "A").End(xlUp).Row

    Set sourceRange = sourceWorksheet.Range("A1:C" & lastRow)

    ' 転記先の既存データをクリアする
    destinationWorksheet.Range("A:C").ClearContents

    ' 転記元と同じサイズの範囲を転記先に用意する
    Set destinationRange = destinationWorksheet.Range("A1").Resize(sourceRange.Rows.Count, sourceRange.Columns.Count)

    destinationRange.Value = sourceRange.Value

End Sub

・ClearContentsを使う理由

ここでは ClearContents を使っています。
ClearContents はセルの値や数式を削除しますが、書式は残します。

実務では、転記先シートにあらかじめ見出しの色、罫線、列幅などを設定していることがあります。
その場合、Clear を使ってしまうと書式まで消えてしまうため、表の見た目が崩れる可能性があります。

値だけを入れ替えたい場合は、ClearContents を使う方が安全です。

・見出し行を残したい場合の考え方

転記先に見出し行を残したい場合は、すべてをクリアするのではなく、データ部分だけを削除します。

たとえば、1行目が見出しで、2行目以降だけ消したい場合は次のようにします。

destinationWorksheet.Range("A2:C" & destinationWorksheet.Rows.Count).ClearContents

このように、見出し行を残すかどうかは、貼り付け先シートの役割に合わせて決める必要があります。

貼り付け前に既存データを削除する処理は、値貼り付け系のマクロで非常によく使われます。
ただし、ClearとClearContentsでは「書式まで消えるかどうか」が大きく異なるため、使い分けを間違えると帳票レイアウトが崩れる原因になります。
値だけを消したい場面と、セル自体を初期化したい場面の違いについては、こちらの記事もぜひ参考にしてください。

【VBA】ClearとClearContentsの違い|値・書式を消す操作の使い分け


✅ VBAで現在のシートから別シートの最終行へ追記する方法

値貼り付けには、既存データを上書きする方法と、下に追記する方法があります。
実務では、日別データや処理履歴を残したい場合、既存データを消さずに最終行の下へ追加するケースが多いです。
ただし、追記処理では貼り付け開始行を間違えると、既存データを上書きしてしまう危険があります。
また、見出し行の有無によって、最初に貼り付ける行も変わります。
そのため、追記処理では「転記先の最終行を取得する」「次の空行を決める」という流れを明確にしておくことが重要です。
ここでは、現在のシートの値を別シートの最終行へ追記する実務的なコードを確認します。

・別シートの最終行へ追記するコード

Sub AppendValuesToAnotherSheet()

    Dim sourceWorksheet As Worksheet
    Dim destinationWorksheet As Worksheet
    Dim sourceLastRow As Long
    Dim destinationLastRow As Long
    Dim pasteStartRow As Long
    Dim sourceRange As Range
    Dim destinationRange As Range

    Set sourceWorksheet = ActiveSheet
    Set destinationWorksheet = ThisWorkbook.Worksheets("転記先")

    ' 転記元の最終行を取得する
    sourceLastRow = sourceWorksheet.Cells(sourceWorksheet.Rows.Count, "A").End(xlUp).Row

    ' 転記先の最終行を取得する
    destinationLastRow = destinationWorksheet.Cells(destinationWorksheet.Rows.Count, "A").End(xlUp).Row

    ' 転記先が空に近い場合でも、2行目から貼り付ける想定にする
    If destinationLastRow < 2 Then
        pasteStartRow = 2
    Else
        pasteStartRow = destinationLastRow + 1
    End If

    ' 転記元は2行目以降のデータ部分のみを対象にする
    Set sourceRange = sourceWorksheet.Range("A2:C" & sourceLastRow)

    ' 転記先の貼り付け範囲を設定する
    Set destinationRange = destinationWorksheet.Cells(pasteStartRow, "A").Resize(sourceRange.Rows.Count, sourceRange.Columns.Count)

    destinationRange.Value = sourceRange.Value

End Sub

・見出しを除外して追記する理由

このコードでは、転記元の範囲を A2:C最終行 にしています。
これは、1行目を見出しとして扱い、データ部分だけを追記するためです。

もし見出し行まで毎回追記してしまうと、転記先シートの途中に何度も見出しが入ってしまいます。
後から集計やフィルターを使うときに扱いづらくなるため、履歴型の転記では見出し行を除外するのが基本です。

・追記処理で気をつけたいポイント

追記処理では、転記先の最終行をどの列で判定するかが重要です。
今回の例ではA列を基準にしていますが、A列に空白が入る可能性がある場合、途中で最終行を誤判定する可能性があります。

実務では、必ず入力されるID列や日付列を基準にするのがおすすめです。
また、重複して追記されると困る場合は、貼り付け前に重複チェックを入れる設計も必要になります。


✅ VBAで値貼り付け処理を使いやすくする実務設計

現在のシートから別シートへ値貼り付けする処理は、短いコードでも実現できます。
しかし、実務で長く使うマクロにするなら、「どのシートから」「どの範囲を」「どこへ」「上書きか追記か」を明確にしておく必要があります。
この設計が曖昧なままだと、後から別の業務に流用するときにコード全体を書き直すことになります。
また、シート名や範囲をコード内に何度も直接書くと、仕様変更時の修正漏れが起きやすくなります。
そのため、実務向けのVBAでは、設定値を変数として整理し、処理の意図が見える形にすることが大切です。
ここでは、変更しやすく、読みやすい値貼り付け処理の設計例を紹介します。

・設定値を変数にまとめたコード

Sub PasteValuesWithMaintainableDesign()

    Dim sourceWorksheet As Worksheet
    Dim destinationWorksheet As Worksheet
    Dim sourceFirstRow As Long
    Dim sourceLastRow As Long
    Dim sourceFirstColumn As String
    Dim sourceLastColumn As String
    Dim destinationStartCell As Range
    Dim sourceRange As Range
    Dim destinationRange As Range

    ' 転記元・転記先の設定
    Set sourceWorksheet = ActiveSheet
    Set destinationWorksheet = ThisWorkbook.Worksheets("転記先")

    ' 転記対象範囲の設定
    sourceFirstRow = 2
    sourceFirstColumn = "A"
    sourceLastColumn = "C"

    ' A列を基準に転記元の最終行を取得する
    sourceLastRow = sourceWorksheet.Cells(sourceWorksheet.Rows.Count, sourceFirstColumn).End(xlUp).Row

    ' データが存在しない場合は処理を終了する
    If sourceLastRow < sourceFirstRow Then
        MsgBox "転記対象のデータがありません。", vbExclamation
        Exit Sub
    End If

    ' 転記元範囲を作成する
    Set sourceRange = sourceWorksheet.Range(sourceFirstColumn & sourceFirstRow & ":" & sourceLastColumn & sourceLastRow)

    ' 貼り付け開始セルを設定する
    Set destinationStartCell = destinationWorksheet.Range("A2")

    ' 転記先範囲を転記元と同じサイズにする
    Set destinationRange = destinationStartCell.Resize(sourceRange.Rows.Count, sourceRange.Columns.Count)

    ' 値だけを貼り付ける
    destinationRange.Value = sourceRange.Value

    MsgBox "値貼り付けが完了しました。", vbInformation

End Sub

・このコードが保守しやすい理由

このコードでは、転記開始行や列範囲を変数で管理しています。
そのため、あとから「B列からE列までに変更したい」「見出し行を3行目までにしたい」といった修正が発生しても、変更箇所を探しやすくなります。

また、データが存在しない場合に処理を終了するチェックも入れています。
このような確認を入れておくことで、空の範囲を貼り付けようとしてエラーになるリスクを減らせます。

実務では、正常なデータが入っている前提だけでコードを書くと、運用中にトラブルが起きやすくなります。
入力漏れやデータ不足を想定しておくことが、安定したマクロを作るポイントです。

・別の書き方と比べたメリット

短いコードで済ませるなら、次のような書き方でも値貼り付けは可能です。

Worksheets("転記先").Range("A1:C10").Value = ActiveSheet.Range("A1:C10").Value

ただし、この書き方は簡潔な反面、後から見たときに処理の意図が分かりにくくなります。
また、範囲変更やシート名変更があった場合、コード内のどこを修正すべきか分かりづらくなります。

業務で長く使うなら、少しコードが長くなっても、変数名や処理の流れを明確にした方が安全です。
特に他の人がメンテナンスする可能性があるマクロでは、短さよりも読みやすさを優先した方が結果的にトラブルを減らせます。


✅ VBAで値貼り付けするときに起きやすいミス

値貼り付けのVBAは、基本構文だけ見ると難しくありません。
しかし、実務では小さな指定ミスが大きなトラブルにつながることがあります。
たとえば、貼り付け先の範囲サイズが転記元と違っていたり、アクティブシートが想定と違っていたりすると、データの欠落や上書きが発生します。
また、転記先に古いデータが残ったままになり、集計結果が誤るケースもあります。
このようなミスは、コードが動くかどうかだけを確認していると見逃しやすいです。
ここでは、現在のシートから別シートへ値貼り付けする際に注意したい実務上のポイントを整理します。

・ActiveSheetに依存しすぎない

現在のシートを使う処理では、ActiveSheet を使うこと自体は間違いではありません。
ただし、マクロを実行する前に別のシートを選択していると、想定外のシートが転記元になります。

実務で安全性を高めるなら、必要に応じてシート名を明示する方法も検討しましょう。

Set sourceWorksheet = ThisWorkbook.Worksheets("入力シート")

「必ず今開いているシートを対象にする」のか、「特定の入力シートを対象にする」のかを最初に決めることが大切です。

ActiveSheetは便利ですが、実務では「どのシートが現在アクティブなのか」によって処理結果が変わるため、意図しないシートを操作してしまう原因にもなります。
特に、複数シートを開いた状態で使うマクロでは、アクティブシート依存の設計に注意が必要です。
アクティブシートの安全な扱い方や、シート名取得・値参照の基本については、こちらの記事もぜひ参考にしてください。

【VBA】アクティブシートの指定・変更・シート名取得・値参照

・貼り付け先の既存データに注意する

上書き型の処理では、貼り付け前に既存データを削除するかどうかを決める必要があります。
追記型の処理では、既存データを消さない代わりに、重複登録が起きないように注意が必要です。

どちらが正解というより、業務の目的によって選ぶことが大切です。

  • 最新状態だけ必要なら上書き
  • 履歴を残したいなら追記
  • 重複が困るなら貼り付け前に確認

このように、処理目的に合わせて設計しましょう。

・数式ではなく結果だけを貼り付けたい場合にValueを使う

転記元セルに数式が入っている場合、.Value を使うと計算結果が貼り付けられます。
数式そのものを貼り付けたい場合は別の指定が必要ですが、報告用・保存用・履歴用のシートでは、結果だけを残したい場面が多いです。

そのため、値貼り付けでは .Value の使い方を理解しておくと、数式崩れや参照先エラーを防ぎやすくなります。


✅ VBAの値貼り付けを高速化したい場合の考え方

データ量が少ないうちは、どの書き方でも大きな差を感じにくいかもしれません。
しかし、数千行・数万行のデータを扱うようになると、セルを1つずつ処理するコードは急激に遅くなります。
特に、ループで1セルずつ読み書きする処理は、Excelとのやり取りが何度も発生するため、処理時間が長くなりがちです。
現在のシートから別シートへ値貼り付けするだけなら、範囲全体を一括で代入する方が効率的です。
また、画面更新や再計算の影響を抑えることで、さらに安定した処理にできます。
ここでは、値貼り付け処理を高速化するための考え方を整理します。

・範囲を一括で代入する

値貼り付けでは、できるだけ次のように範囲全体を一括で代入します。

destinationRange.Value = sourceRange.Value

この書き方は、セルを1つずつループするよりも効率的です。
Excel VBAでは、ワークシートへの読み書き回数を減らすことが処理速度改善につながります。

・画面更新を一時停止する

大量データを処理する場合は、画面更新を一時的に止めることで処理が速くなることがあります。

Application.ScreenUpdating = False

' 値貼り付け処理

Application.ScreenUpdating = True

ただし、エラーが発生した場合に True に戻らないと、画面が更新されない状態になることがあります。
実務で使うなら、エラー処理とセットで考えることが重要です。

・実務向けに画面更新を戻すコード

Sub PasteValuesWithSafeSettings()

    Dim sourceWorksheet As Worksheet
    Dim destinationWorksheet As Worksheet
    Dim sourceRange As Range
    Dim destinationRange As Range

    On Error GoTo ErrorHandler

    Application.ScreenUpdating = False

    Set sourceWorksheet = ActiveSheet
    Set destinationWorksheet = ThisWorkbook.Worksheets("転記先")

    Set sourceRange = sourceWorksheet.Range("A1:C10")
    Set destinationRange = destinationWorksheet.Range("A1").Resize(sourceRange.Rows.Count, sourceRange.Columns.Count)

    destinationRange.Value = sourceRange.Value

ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub

ErrorHandler:
    MsgBox "値貼り付け中にエラーが発生しました。" & vbCrLf & Err.Description, vbExclamation
    Resume ExitHandler

End Sub

このコードでは、エラーが起きても Application.ScreenUpdating = True に戻るようにしています。
実務では、処理速度を上げるための設定を使う場合ほど、「最後に必ず戻す」設計が大切です。


 

✅ まとめ:VBAで現在のシートから別シートへ値貼り付けする基本を押さえよう

VBAで現在のシートから別シートへ値貼り付けする処理は、Excel業務の自動化で非常によく使われます。
入力データを集計シートへ移したり、加工結果を保存用シートへ残したりする場面では、値だけを安全に転記する考え方が重要です。

今回のポイントを整理すると、以下の通りです。

  • 値だけを貼り付けるなら .Value 代入が使いやすい
  • CopyPasteSpecial でも値貼り付けはできる
  • 実務ではクリップボードを使わない .Value 代入の方が安定しやすい
  • データ量が変わる場合は最終行を取得して範囲を決める
  • 貼り付け先の既存データを消すか追記するかを事前に決める
  • 見出し行を含めるかどうかを明確にする
  • ActiveSheet を使う場合は、対象シートの誤認に注意する
  • 大量データでは範囲を一括代入する方が高速化しやすい
  • 画面更新停止などを使う場合は、必ず元に戻す設計にする

値貼り付けは、VBAの中でも基本的な処理ですが、実務では非常に重要な土台になります。
単に動くコードではなく、あとから変更しやすく、他の業務にも流用しやすい形で作っておくことで、Excel自動化の幅が大きく広がります。

    -VBAで自動化, VBA一覧, セル・値の取得と貼り付け, 貼り付け