セルのリンク貼り付け

広告

セルを単にコピーした貼り付けた場合には、コピー元の値がそのまま貼り付けられています。

セルのリンク貼り付け

上記はセル範囲B2:C5をセルE2に貼り付けたものです。例えばセルF3の値はコピー元の値である「1200」と言う数値がそのままコピーされています。

セルのリンク貼り付け

また計算式などもセルF5の値を見て頂くと分かる通り、コピー元で相対参照の形式で上2つのセルの合計を表す式が入力されていたので、コピーされたセルF5の値も相対参照によって上2つのセルの合計が入るような計算式が入っています。

このように単にコピー元の値をコピーするのではなく、コピー元の値をそのまま参照するようにコピーすることが可能です。これをリンク貼り付けと言います。

セルのリンク貼り付け

上記はリンク貼り付けを行った例です。セルF3の値を見てください。セルF3にはコピー元のセルに入っていた値がコピーされるのではなく、コピー元のセルを参照するように設定されています。このため、コピー元のセルC3の値を変更すると、自動的にセルF3の値も変更されます。

通常の貼り付けではなく、リンク貼り付けを行う場合には、「Paste」メソッドを実行する際に「Link」引数に「True」を設定します。

Range("A1").Copy

Range("B2").Select
ActiveSheet.Paste Link:=True

注意点としては「Link」引数を指定する場合には、「Destination」引数は同時に指定できないことです。その為、貼り付ける時点で選択されていたセルに貼り付けが行われます。

またリンク貼り付けを行う場合には、書式はコピーされないようですので注意して下さい。

サンプルプログラム

では簡単なサンプルで試してみましょう。

下記のようなExcelファイルを用意します。

セルのリンク貼り付け

表(セル範囲B2:C5)をまとめてコピーし、セルE2の位置へリンク貼り付けをします。

testcelledit6.bas

Sub テスト()

    Dim range1 As Range
    
    Set range1 = Range("B2:C5")
    range1.Copy
    
    Range("E2").Select
    
    ActiveSheet.Paste Link:=True
    
    Application.CutCopyMode = False

End Sub

上記マクロを実行すると次のようになります。

セルのリンク貼り付け

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)