値の貼り付け



いちいち、[コピー]→[コピー先を選択]→[右クリック]→[形式を選択して貼付け]選択→[値]をポイント→ OKクリックな〜んて、やってられないですよね。
このマクロはボタンに登録するか、ショートカットで実行できるようにすると便利です。

Sub 値の貼付け()

     Selection.PasteSpecial Paste:=xlValues

End Sub

自動記録で行うと下記のように書かれます。

Sub 値の貼付け()

     Selection.PasteSpecial Paste:=xlValues,Operation:=xlNone, SkipBlanks:= False, Transpose:=False

End Sub

※ グリーンの文字の部分は不要な記述なので、削除します。

■ポイント■

自動記録で「形式を選択して貼付け」を行い、後からいらない部分を削除する。
いらない部分とは、自動記録では「形式を選択して貼付け」で選択をした事だけではなく、
選択しなかった事も書かれてしまうので、その部分がいらない。(どっちでもいいんだけれど・・・)

※ Selection.PasteSpecial Paste:=xlValues ・・・ 「値を貼付け」る
※ Operation:=xlNone ・・・ 「演算」しない
※ SkipBlanks:=False ・・・ 「空白セルを無視」しない
※ Transpose:=False ・・・ 「行列入れ替え」しない


赤文字:必要  グリーン文字:不要



数式の貼り付け



上記の「値の貼付け」の「xlValues」の部分を「xlFormulas」に変えるだけです。

Sub 数式を貼付け()

     Selection.PasteSpecial Paste:=xlFormulas

End Sub



書式の貼り付け



上記の「値の貼付け」の「xlValues」の部分を「xlFormats」に変えるだけです。

Sub 書式を貼付け()

     Selection.PasteSpecial Paste:=xlFormats

End Sub


「値の貼付け」マクロは、コピーした後、「ツール」→「マクロ」→「マクロ実行」で実行しようとすると、 エラーになってしまいます。(エラー番号:1004)
何故かと言うと、「ツール」をクリックした時に、コピーモードが解除されてしまうのです。
なので、「コピーもしてないのに貼りつけなんかできるか!」とエラーになってしまうのでした。
ショートカットで実行できるように登録しておくといいと思います。
(私は[Ctrl]+[Shift]+[Z]で実行するように設定しています。)