2010年8月8日日曜日

第154回目、リンク貼り付け、なんて簡単なの

○第154回目、リンク貼り付け、なんて簡単なの


 リンク貼付けって、とても大変なイメージを持っていました。大体はブックを超えてのものなので、操作がめんどうくさいという思いがまず出てきてしまうことが原因だと思います。
 でも、よく見ると単純な計算式なのでした。
 そこで、こんなマクロを。
 他のブックからリンク貼付をしたいとします。
 通常の操作では、
 1.コピー元を指定し、コピー先に移動して、すべて貼付け及び列幅を貼付ける。
 2.コピー元に戻り、リンク貼付けをしたい部分を指定し、コピー先に移動して、リンク貼付け
 となるのではないでしょうか(1.でリンク貼付けをしてしまうことも考えられますが、関係のないところに計算式が入ってしまい、その場所は0が表示され、気になってしまいます。0の部分を消していくのもかったるい)。

 これを一気にやってしまうマクロです。
 流れです。
 0.コピー元を指定し、マクロを実行します。
 1.コピー先のブック、シートに移動して、貼付け位置を指定する。
 2.リンク貼付けをしたくない行数(先頭位置からの行数)を入力します。
 
 コピーの処理としては
 1.書式
 2.列幅
 3.値と数値の書式
 4.リンク貼付け
 でしょうか。
 まずは1-3まで行って、4.のリンク貼付けを、指定された範囲から除外行数の部分を除い範囲で行えばいいことになります。
 リンク貼付けのコマンドは、次のとおりとなります。
  Range("D8:D12").Select
  Selection.Copy
  (ブックを指定する)
  (シートを指定する)
  Range("AY25").Select
  ActiveSheet.Paste Link:=True
 範囲指定はCells指定で行うほうが、拡張性が広がるので、いいと思います。

 参考のため、それぞれのコピーコマンドをあげておきます。
 1.書式のコピー
  Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
 2.列幅のコピー
  Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
 3.値と数値の書式のコピー
  Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
  xlNone, SkipBlanks:=False, Transpose:=False
    SkipBlanks:=False, Transpose:=False
 4.リンク貼付け
  Selection.Paste Link:=True


 行だけではなく、リンク貼付けをしたい範囲として、列も除外したいのですが。
=⇒それは非常に簡単なので各自で試みてください。
 例えば、2-6とか、列-列形式で入力するとスマートですね。

0 件のコメント: