エクセルVBAで、形式を選択してセルをコピーする方法を紹介します。セルをコピーする場合はCopyメソッドを、形式を選択して貼付けはPasteSpecialメソッドを使います。値だけ、形式だけをコピーしたいといった場合、PasteSpecialメソッドを使用すると簡単に貼り付けられます。Copyメソッドを使用することで、セルの値だけでなくセル範囲、別シートへの貼付けもできるので、2つのメソッドを使用して色々なパターのコピー貼付けができるようになります。セルのコピー貼付けはエクセルでよく使用するので、覚えると便利です。
エクセルVBAでセルをコピーする場合は、Copyメソッドを使います。
Copyメソッドはセルの値だけでなく、セルの範囲やセルを別シートにコピーすることもできます。
Copyメソッドの構文
expression.Copy(Destination)
expression | 必ず指定します。対象となる Range オブジェクトを返すオブジェクト式を指定します。 |
Destination | 省略可能です。バリアント型 (Variant) の値を使用します。コピー先のセル範囲を指定します。この引数を省略すると、クリップボードへコピーされます。 |
エクセルVBAで形式を選択してセルをコピー貼り付けする場合は、PasteSpecialメソッドを使います。
Object.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
CopyメソッドとPasteSpecialメソッドを使用すると、セルを形式を選択してコピー、貼り付けできます。
Paste | 貼り付ける方法を指定(省略可能) |
Operation | 演算して貼り付ける場合の演算方法を指定(省略可能) |
SkipBlanks | 空白セルを無視するか指定。無視する(True)、無視しない(False)(省略可能) |
Transpose | 行列入れ替えを指定。入れ替える(True)、入れ替えない(False)(省略可能) |
PasteSpecial の引数に定数を指定することで、形式を選択して貼り付けできます。
引数「Paste」に使用する定数
定数 | 値 | 内容 |
xlPasteAll (既定) | -4104 | すべて |
xlPasteFormulas | -4123 | 数式のみ |
xlPasteValues | -4163 | 値のみ |
xlPasteFormats | -4122 | 書式のみ |
xlPasteComments | -4144 | コメント |
xlPasteValidation | 6 | 入力規則 |
xlPasteAllExceptBorders | 7 | 罫線を除くすべて |
xlPasteColumnWidths | 8 | 列幅 |
xlPasteFormulasAndNumberFormats | 11 | 数式と数値の書式 |
セルの値だけをコピーする
セルの値だけを、コピーしてみましょう。
Sub セルの値だけコピー()
Range(“A1”).Copy
Range(“C1”).PasteSpecial (xlPasteValues)
End Sub
セルA1の値が、C1にコピーされます。
この場合、コピーモードになるので、Application.CutCopyMode に False を指定すると、コピーモードを解除できます。
コピーモードを解除してセルの値だけコピーする。
Sub コピーモードを解除してセルの値だけコピー()
Range(“A1”).Copy
Range(“C1”).PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End Sub
セルを全てコピーする場合は、次のようにCopy メソッドでコピーできます。
Sub セルを全てコピー()
Range(“A1”).Copy Range(“C1”)
End Sub
セルA1が、C1に全てコピーされます。
セルの範囲を値だけコピーする
エクセルVBAでセルの範囲を値だけコピーする場合は、範囲を指定します。
Sub セル範囲を値だけコピー()
Range(“A1:C2”).Copy
Range(“D1:F2”).PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End Sub
セル範囲「A1:C2」の値が、セル範囲「D1:F2」にコピーされます。
セル範囲のコピーは、次のように省略することもできます。
Sub セル範囲を値だけコピーA()
Range(“A1:C2”).Copy
Range(“D1”).PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End Sub
セルの値だけを範囲にコピーしたい場合は、次のようになります。
Sub セル値だけを範囲にコピー()
Range(“A1”).Copy
Range(“B1:D3”).PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End Sub
セル「A1」の値が、セル範囲「B1:D3」にコピーされます。
セルの値を別シートにコピーする
セルの値だけを別シートにコピーしてみましょう。
Sub セル値だけを別シートのコピー()
Worksheets(“Sheet1”).Range(“A1:C3”).Copy
Worksheets(“Sheet2”).Range(“D1:F3”).PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End Sub
シート「Sheet1」セル範囲「A1:C3」の値だけが、シート「Sheet2」セル範囲「D1:F3」にコピーされます。
別シートへのセル範囲コピーは、次のように省略することもできます。
Sub セル値だけを別シートのコピーA()
Worksheets(“Sheet1”).Range(“A1:C3”).Copy
Worksheets(“Sheet2”).Range(“D1”).PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End Sub
こちらの記事もご覧ください。⇒エクセルVBAが初心者でも短期間でマスターできる楽パソ!音声と映像で自宅で学べる。
こちらの記事もご覧ください。⇒プログラミングスキルが初心者でも短期間でマスターできる楽パソ!音声と映像で自宅で学べる。
Copyメソッドを使用せずに値をコピー
ここでは、エクセルVBA Copyメソッドを使用して、セルを形式を選択してコピー貼付けしましたが、単純にセルの値を別セルにコピーする場合は、Copyメソッドを使用しなくてもできます。VBAでセルの値を別セルに転記すれば、セルがコピーされます。セルを全てコピーする場合は、Copyメソッドだけを使用すれだけでいいです。コピーはエクセルでは基本の操作になります。定期的に同じコピーを行う場合は、 VBAを使用した方が、効率よく作業ができます。ボタンを作成して、ボタンから実行させると、さらに作業が楽になります。
こちらの記事もご覧ください。⇒エクセルVBAでセルを別シート(セルの範囲も紹介)にコピーする方法
エクセル・ワード・パワーポイント・アクセス・マクロVBA・WEBプログラミングを入門から応用までらくらくマスターできる ➡ 動画パソコン教材 |
エクセルのマクロとVBAを入門から応用まで映像と音声でわかりやすく学ぶことができます。
↓ ↓ ↓ ↓ ↓
ワード・エクセルパワーポイント・アクセスとエクセルマクロVBA・WEBプログラミング・パソコンソフト作成を入門から応用まで映像と音声でわかりやすく学ぶことができます。
↓ ↓ ↓ ↓ ↓
VBA・Java・WEB・C#・HTML/CSSプログラミングを入門から応用まで映像と音声でわかりやすく学ぶことができます。
↓ ↓ ↓ ↓ ↓
ワード・エクセル・パワーポイント・アクセスを入門から応用まで映像と音声でわかりやすく学ぶことができます。
↓ ↓ ↓ ↓ ↓
ワード・エクセル・パワーポイント・アクセスとWEBプログラミングを入門から応用まで映像と音声でわかりやすく学ぶことができます。
↓ ↓ ↓ ↓ ↓