- Home ›
- Excel VBA入門 ›
- セルの編集
セルのリンク貼り付け
セルに値そのものを貼りつけるのではなく、コピー元の値を参照するように貼りつけるリンク貼り付けが利用できます。ここでは Excel VBA でセルのリンク貼り付けを行う方法を解説します。
(Last modified: )
セルのリンク貼り付けを行う
セルを単にコピーして貼り付けた場合には、コピー元の値がそのまま貼り付けられています。
上記はセル範囲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の位置へリンク貼り付けをします。
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 )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。