セルの特定の要素のみをペーストする(PasteSpecial メソッド)
2015/08/26
PasteSpecial メソッド
PasteSpecial メソッドは、Copy メソッドでコピーされたワークシート上の任意のセル・セル範囲の内容の特定の要素のみ(「値のみ」「列幅のみ」「書式のみ」など)をペーストする時に使用します。
Object.PasteSpecial ( [ paste, operation, skipblanks, transpose ] )
引数・戻り値
- object ・・・ 対象となるRange オブジェクト
- paste ・・・ 貼り付ける要素を XlPasteType 列挙型 の定数で指定します。(下表参照)
- operation ・・・ 計算を伴う貼り付けの場合の計算方法を XlPasteSpecialOperation の定数で指定します。(下表参照)
- skipblanks ・・・ クリップボードに含まれる空白のセルを貼り付けの対象にしないようにするには、True を指定します。既定値は False です。
- transpose ・・・ 行と列を入れ替えて貼り付けるには、True を指定します。既定値は False です。
引数 paste(XlPasteType 列挙型の定数)
定数 | 値 | 内容 |
xlPasteValues | -4163 | 値のみ |
xlPasteComments | -4144 | コメントを貼り付けます。 |
xlPasteFormulas | -4123 | 数式を貼り付け |
xlPasteFormats | -4122 | コピーしたソースの形式を貼り付け |
xlPasteAll | -4104 | すべてを貼り付け |
xlPasteValidation | 6 | 入力規則を貼り付け |
xlPasteAllExceptBorders | 7 | 輪郭以外のすべてを貼り付け |
xlPasteColumnWidths | 8 | コピーした列の幅を貼り付け |
xlPasteFormulasAndNumberFormats | 11 | 数式と数値の書式を貼り付け |
xlPasteValuesAndNumberFormats | 12 | 値と数値の書式を貼り付け |
xlPasteAllUsingSourceTheme | 13 | ソースのテーマを使用してすべてを貼り付け |
xlPasteAllMergingConditionalFormats | 14 | すべてを貼り付け、条件付き書式をマージ |
引数 operation(XlPasteSpecialOperationの定数)
定数 | 値 | 内容 |
xlPasteSpecialOperationNone | -4142 | 計算は行われない |
xlPasteSpecialOperationAdd | 2 | 加算 |
xlPasteSpecialOperationSubtract | 3 | 減算 |
xlPasteSpecialOperationMultiply | 4 | 乗算 |
xlPasteSpecialOperationDivide | 5 | 除算 |
引数 paste には1つの要素しか指定することができないので、複数の要素をコピーしたい場合は、その要素ごとに、PasteSpecial メソッドを実行します。
(例)列幅と書式をペースト
Range(“A1”).copy
Range(“B1”).PasteSpecial xlPasteColumnWidths
Range(“B1”).PasteSpecial xlPasteFormats
書式が文字列であったり、先頭に「’」シングルコーテーションマークがついた数値が入力されているセルに対して、「空白セル」をコピーして、PasteSpecial メソッドで、引数 operation に、xlPasteSpecialOperationAdd を指定してその数値が入力されたセルにペーストすると、標準の書式に変更され、「’」シングルコーテーションマークも取り除かれます。
PasteSpecial メソッドの使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Sub Sample_PasteSpecial() '「A1」セルから「E1」セルをコピー Range("A1:E1").Copy '「A3」セルへペースト(「値のみ」「空白セル対象外」「行列入れ替える」) Range("A3").PasteSpecial , _ Paste:=xlPasteValues, _ skipblanks:=True, _ Transpose:=True '「G1:H1」セルは、シングルコーテーション(')が付いた数値(文字列) '「I1」セルは、書式が文字列 '「M1」セルは空白セル '「M1」セルをコピー Range("M1").Copy '「A10」セルへペースト(「全て」、「加算して貼り付け」) Range("G1:L1").PasteSpecial , xlPasteSpecialOperationAdd '「G1」セルから「L1」セルをコピー Range("G1:L1").Copy '「G10」セルから「L10」へペースト(「減算して貼り付け」) Range("G10:L10").PasteSpecial operation:=3 '「G11」セルへペースト(「値」「数値数式の書式」) Range("G11").PasteSpecial Paste:=xlPasteValues Range("G11").PasteSpecial Paste:=xlPasteFormulasAndNumberFormats 'コピーモード解除 Application.CutCopyMode = False End Sub |
実行結果
サンプルVBA実行前
サンプルVBA実行後
関連記事
-
数式を設定・取得する(Formula プロパティ・FormulaR1C1 プロパティ)
Formula プロパティ(FormulaR1C1 プロパティ) Formula …
-
書式で検索(Find メソッド,FindFormat プロパティ)
書式で検索 書式を条件にセルを検索する場合、まず、その書式条件を CellFor …
-
フリガナの取得(GetPhonetic メソッド)
GetPhonetic メソッド GetPhonetic メソッドは、指定した文 …
-
アクティブなセルを参照する(ActiveCell プロパティ)
ActiveCell プロパティ ActiveCell プロパティは、各ウィンド …
-
オートフィルタ(抽出件数の取得・結果集計)AutoFilter メソッド
ワークシート関数の Subtotal 関数 の使い方 VBA には、オートフィル …
-
A1 形式と R1C1 形式を変換、相対参照と絶対参照を変換(ConvertFormula)
ConvertFormula メソッド 数式で参照しているアドレスの相対参照と絶 …
-
別シートのセルを選択(Goto メソッド / PreviousSelections プロパティ)
Goto メソッド 次の例のように、1 行で、Activate メソッド や S …
-
並べ替え(Sort メソッド)
Sort メソッド 任意のセル範囲内で、並べ替えを行います。引数で、並べ替えの条 …
-
指定したセルへ移動(Goto メソッド)
指定したセルへ移動 指定したシートの指定したセルへジャンプするには、Goto メ …
-
現在選択されているセルを参照(RangeSelection プロパティ)
RangeSelection プロパティ 実際に何が選択されているかにかかわらず …