簡単な輸出インボイス作成マクロ (19)

X) セルのコピー・移動

Excelの操作が、それぞれ下記の「メソッド」に対応しています。

Excel メソッド
コピー Copy
切り取り Cut
貼り付け Paste
形式を選択して貼り付け PasteSpecial



PasteSpecialメソッド
前回ブログ「マクロの記録」で、「形式を選択して貼り付け」を選択して、実行したので、「PasteSpecialメソッド」を先にご紹介します。

私の場合、「コピー」・「貼り付け」する場合、この「PasteSpecialメソッド」を頻繁に用いています。

参考のため、前回「マクロの記録」で作成された「コード」を再掲します。

この「コード」は、下記のように整理されます。

Sub CopyMessrs()
    Sheets("SI").Range("B10:B11").Copy
    Sheets("INV").Range("C12").PasteSpecial Paste:=xlPasteValues
End Sub

但し、上記「プロシージャ」を実行すると、「コピーで選択した範囲」が点線で囲まれています。

コピーしたデータが「クリップボード」に残っている状態です。

そこで、「コピーモード」を「オフ」にする「ステートメント」を付け加えておきます。(Application.CutCopyMode = False)

Sub CopyMessrs()
    Sheets("SI").Range("B10:B11").Copy
    Sheets("INV").Range("C12").PasteSpecial Paste:=xlPasteValues
  Application.CutCopyMode = False
End Sub

上記「ステートメント」中の[xlPasteValues]が、Excelでの操作「形式を選択して貼り付け」中の「値(V)」に相当します。

下記の設定値が、「形式を選択して貼り付け」の各規定に対応しています。

No. 設定値 内容
(1) xlPasteAll すべて
(2) xlPasteFormulas 数式
(3) xlPasteValues
(4) xlPasteFormats 書式
(5) xlPasteComments コメント
(6) xlPasteValidation 入力規則
(7) xlPasteAllUsingSourceTheme コピー元のテーマを使用してすべて貼り付け
(8) xlPasteAllExceptBorders 罫線を除くすべて
(9) xlPasteColumnWidths 列幅
(10) xlPasteFormulasAndNumberFormats 数式と数値の書式
(11) xlPasteValuesAndNumberFormats 値と数値の書式
(12) xlPasteAllMergingConditionalFormats すべての結合されている条件付き書式

「コピー」した「データ」から貼り付ける内容により、「設定値」を選択して、「ステートメント」を作成して下さい。