マクロ講座17回

 値の貼り付けをするマクロ

マクロ講座16回では、形式を選択して貼り付けを行う場合の、
「値の貼り付けをするマクロ」を作成しました。

今回は、その中身を見ていきます。

(サンプルファイルは、こちらから マクロ講座17回サンプルデータ

Selection.PasteSpecialを使う

VBEを起動させます。
Alt+F11

値の貼り付けマクロのコードを見てみましょう。


Sub 値の貼り付け2()
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
End Sub    
【コードの解説】

  Selection.PasteSpecial は、
  
  Selection 選択した位置に PasteSpecial 形式を選択して貼り付け
  を実行しなさいということ
  
   Paste:=xlPasteValues 
   の部分が、
   貼り付ける形式は 「値」とするの意味です。

Operation:=xlNone 演算は「行わない」(Operation:=xlNone)
   SkipBlanks:=False 「空白を 無視する」はオフ
   Transpose:=False 「行列を入れ替える」はオフ
   
Paste は、Special なのよ、だからPasteSpecial


 PasteSpecialは、形式を選択して貼り付け。
 いろいろあって特別なので、PasteSpecial という名前。
 (英語はストレートでいいね。)
 
注意
ここで一つ注意点があります。
汎用的に使うために、セル範囲を先にコピーしました。つまり、このマクロを実行する前に、あらかじめどこかのセルをコピーしておかなければいけないということ。

クリックボードの中に貼り付けるものが入っていることが必要です。
もし、コピーせずに、PasteSpecialを実行しようとすると、エラーになります。

エラーメッセージが嫌だなという時は、エラー回避のコードを入れておくと嫌な思いをしないで済みます。
スポンサーリンク
スポンサーリンク

エラーを回避~ エラー回避のコードを入れておく

マクロ講座17回のサンプルでは、この実行時エラーを回避するために、
On Errorステートメントでエラーを回避しています。


On Error Resume Next 

 エラーの原因となった行を無視し、その次の行を再開します。 

マクロの編集

マクロ講座16回のマクロコードに
On Error Resume Next 
の1行を追加します。
さらに、以下のコードの不要部分を削除すると、すっきりします。
Operation:=xlNone,SkipBlanks :=False, Transpose:=False
不要コードを削除した値の貼り付けマクロコード
Sub 値の貼り付け()
    Selection.PasteSpecial Paste:=xlPasteValues
End Sub    
エラー回避を追加したコード
Sub 値の貼り付け()
    On Error Resume Next
    Selection.PasteSpecial Paste:=xlPasteValues
End Sub
今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク