【Excel VBA】別シートへ値のみコピーする方法!

VBAで別シートへ値のみコピーしたいときはないでしょうか。

けど、そんな中で悩むことは、

・VBAで別シートへ値のみコピーしたいが方法がよくわからない
・VBAで範囲を選択した上、別シートへ値のみコピーしたいが方法がよくわからない

ですよね。

今回はそんなお悩みを解決する

・VBAで別シートへ値のみコピーして貼り付ける方法
・VBAで別シートへ値のみコピーして貼り付ける際に範囲を指定する方法

についてまとめます!

VBAで別シートへ値のみコピーして貼り付けるイメージ

VBAで別シートへ値のみコピーして貼り付けるイメージについて説明をします。

以下のように値のみコピー元となるひな形シートとコピー先のシートを用意します。

通常Copyメソッドは書式は数式が入る形でコピーされますが、今回は値のみにした上でコピーするようにします。

それでは早速試してみましょう。

VBAで別シートへ値のみコピーして貼り付ける方法

VBAで別シートへ値のみコピーして貼り付ける方法について説明をします。

サンプルデータを準備する

サンプルデータを元シートとなるひな形シートへ入力しましょう。

タカヒロ
タカヒロ
値のみ貼り付けられているか確認のため、数式や書式設定をいれるとよいでしょう。

コピー先の空シートを新規作成します。

VBAコード

サンプルのVBAコードは以下の通りです。

Sub 別シートへ値のみコピーする()

    '元シートのセル範囲をコピーします。
    Sheets("ひな形").Range("A1:H9").Copy
    
    '別シートへ値のみ貼り付けします。
    Sheets("Sheet1").Range("A1:H9").PasteSpecial Paste:=xlPasteValues
    
    '範囲選択を解除します。
    Application.CutCopyMode = False

End Sub

VBAの実装

VBAの実装方法については
VBAの実装手順
をご参照ください。

VBAを設定する

VBAを設定していきましょう。

元シートのセル範囲を指定します。

シートは”ひな形”シート、セル範囲は”A1:H9″とします。

Sheets("ひな形").Range("A1:H9").Copy

別シートを指定しします。

シートは”Sheet1″シート、セル範囲は”A1:H9″とします。

Sheets("Sheet1").Range("A1:H9").PasteSpecial Paste:=xlPasteValues

タカヒロ
タカヒロ
コピー元のセル範囲とコピー先のセル範囲は同じにするようにしましょう。

VBAを実行する

VBAを実行してみましょう。

別シートに値のみコピーされましたね!数式も値に変換されています!

VBAの説明

VBAについて説明をします。

元シートのセル範囲をCopyメソッドでコピーします。

Sheets("ひな形").Range("A1:H9").Copy

別シートへ値のみ貼り付けをします。

値のみ貼り付けの場合は、PasteSpecialメソッドのPasetプロパティにxlPasteValuesを指定します。

Sheets("Sheet1").Range("A1:H9").PasteSpecial Paste:=xlPasteValues

PasteSpecialメソッド

PasteSpecialメソッドの構文は以下の通りです。

構文 Rangeオブジェクト.PasteSpecial(Format, Link, DisplayAsIcon, IconFileName, IconIndex, IconLabel, NoHTMLFormatting)
説明 指定された形式で、クリップボードの内容をシートに貼り付けます。 パラメータ「Format」によりデータを貼り付ける形式を指定できます。
Format:クリップボードのデータの形式を文字列で指定します。
Link(省略可能):リンクを設定するには Trueを指定します。既定値は False です。
DisplayAsIcon(省略可能):True を指定すると、貼り付けデータがアイコンとして表示されます。 既定値は False です。
IconFileName(省略可能):DisplayAsIcon が True の場合に使用するアイコンを含 むファイルの名前 を指定します。
IconIndex(省略可能):アイコン ファイルのどのアイコンを使うかを示すインデックス番号を指定します。
IconLabel(省略可能):アイコンのラベルを文字列で指定します。NoHTMLFormatting(省略可能):True を設定すると、HTML から書式設定、ハイパーリンク、およびイメージを削除します。 False を設定すると、HTML をそのまま貼り付けます。 既定値は False です。

 

タカヒロ
タカヒロ
その他の貼り付けの形式のプロパティは以下ページをご参照ください。

【Excel VBA】Paste系メソッドで値貼り付けする方法!他の値貼り付け方法も!

コピーした場合、範囲選択の破線が点滅するコピーモードの状態になりますが、その範囲選択を解除します。

Application.CutCopyMode = False

VBAで別シートへ値のみコピーして貼り付ける方法 (列指定版)

これまでセル範囲を指定していましたが、列指定でVBAで別シートへ値のみコピーして貼り付ける方法について説明をします。

VBAコード

サンプルのVBAコードは以下の通りです。

Sub 別シートへ値のみコピーする_列指定()

    '元シートの指定列をコピーします。
    Sheets("ひな形").Columns("A:H").Copy
    
    '別シートへ値のみ貼り付けします。
    Sheets("Sheet1").Columns("A:H").PasteSpecial Paste:=xlPasteValues
    
    '範囲選択を解除します。
    Application.CutCopyMode = False

End Sub

VBAを設定する

VBAを設定していきましょう。

元シートのセル範囲を指定します。

シートは”ひな形”シート、範囲となる列は”A:H”とします。

Sheets("ひな形").Columns("A:H").Copy

別シートを指定しします。

シートは”Sheet1″シート、範囲となる列は”A:H”とします。

Sheets("Sheet1").Columns("A:H").PasteSpecial Paste:=xlPasteValues

VBAを実行する

VBAを実行してみましょう。

指定列の範囲が値のみコピーされましたね!

VBAの説明

VBAについて説明をします。

これまでRangeプロパティでセル範囲を指定していましたが、今回は Worksheet オブジェクトのColumns プロパティを使い列指定をし、その範囲をCopyメソッドでコピーします。

Sheets("ひな形").Columns("A:H").Copy

VBAで別シートへ値のみコピーして貼り付ける方法 (行指定版)

次に、行指定でVBAで別シートへ値のみコピーして貼り付ける方法について説明をします。

VBAコード

サンプルのVBAコードは以下の通りです。

Sub 別シートへ値のみコピーする_行指定()

    '元シートの指定行数分コピーします。
    Sheets("ひな形").Rows("1:9").Copy
    
    '別シートへ値のみ貼り付けします。
    Sheets("Sheet1").Rows("1:9").PasteSpecial Paste:=xlPasteValues
    
    '範囲選択を解除します。
    Application.CutCopyMode = False

End Sub

VBAを設定する

VBAを設定していきましょう。

元シートのセル範囲を指定します。

シートは”ひな形”シート、範囲となる行は”1:9″とします。

Sheets("ひな形").Rows("1:9").Copy

別シートを指定しします。

シートは”Sheet1″シート、範囲となる行は”1:9″とします。

Sheets("Sheet1").Rows("1:9").PasteSpecial Paste:=xlPasteValues

VBAを実行する

VBAを実行してみましょう。

指定行の範囲が値のみコピーされましたね!

VBAの説明

VBAについて説明をします。

Worksheet オブジェクトのRowsプロパティを使い行を指定をし、その範囲をCopyメソッドでコピーします。

Sheets("ひな形").Rows("1:9").Copy

VBAの実装手順

実装手順は以下の通りです。

Excel側にVBAを実装していきます。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

・VBAで別シートへ値のみコピーして貼り付ける方法
・VBAで別シートへ値のみコピーして貼り付ける際に範囲を指定する方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です