目次
この記事では、Excel VBAで範囲を別のシートにコピーするさまざまな方法を紹介します。
説明を簡単にするために、特定の人物の個人情報を表すデータセットをサンプルとして使用する。 データセットには4つのカラムがあり、これらのカラムは 名前、苗字、フルネーム と 電子メール .
練習用ワークブックをダウンロードする
VBA 範囲を別のシートにコピーする.xlsmExcel VBA 範囲を別のシートにコピーする8つの方法
1.書式付きで範囲を別のシートにコピーする
をしたいときは、いつでも コピー あるシートから別のシートへの範囲と フォーマット を使えば簡単にできます。 ブイビーエー .
ここで、私は コピー の範囲にある。 データセット 敷き詰める WithFormat シートを使用します。
手続きを開始しましょう。
まず デベロッパー タブ>>選択 ビジュアルベーシック
を使用することもできます。 ALT + F11 をキーボードで開いてください。 ブイビーエー エディタがあります。
次に、次のような名前の新しいウィンドウが表示されます。 Microsoft Visual Basic for Applications。
そこから インサート >> 選択 モジュール .
A モジュール が開いたら、開かれた場所に次のコードを入力します。 モジュール .
Sub Copy_Range_withFormat_ToAnother_Sheet() Range("B1:E10").Copy Worksheets("WithFormat").Range("B1:E10") End Sub
ここで、宣言したのは サブプロシジャ 範囲指定書式で別のシートにコピーする。
レンジで撮った B1:E10 をクリックすると、既存のシートからシート名にコピーされます。 WithFormat .
ここで、私が使ったのは コピー メソッドを使用して、選択した範囲をコピーします。 コピー メソッドは、任意の範囲を フォーマット .
最後に セーブ を実行し、ワークシートに戻ってください。
次に 表示 タブ>>から マクロ >> 選択 マクロを見る
➤ A ダイアログボックス がポップアップ表示されます。
では、その中から マクロ名 を選択します。 範囲指定書式で別のシートにコピーする。 の中のワークブックも選択します。 のマクロ .
最後に 実行 選択された マクロ .
したがって、それは コピー で選択した範囲を フォーマット を、私が選択した新しいシート( WithFormat) .
2.VBA フォーマットなしで範囲を別のシートにコピーする
することも可能です。 コピー を使わずに、範囲を別のシートに フォーマット を使うことで ブイビーエー .
ここで、私は コピー の範囲にある。 データセット 敷き詰める フォーマットなし シートを使用します。
手続きを開始しましょう。
では、開いてみてください。 デベロッパー タブ>> 選択 ビジュアルベーシック ( を使用します。 ALT + F11)
次に開くのは Microsoft Visual Basic for Applications。
次に、以下を開きます。 インサート >> 選択 モジュール .
A モジュール が開いたら、開いたところに次のコードを入力してください。 モジュール .
Sub Copy_Range_WithoutFormat_Toanother_Sheet() Range("B1:E10").Copy Sheets("WithoutFormat").Range("B1").PasteSpecial _ Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub.
ここで、宣言したのは サブプロシジャ 書式のない範囲を別のシートにコピーする
レンジで撮った B1:E10 をクリックすると、既存のシートからシート名にコピーされます。 フォーマットなし .
ここで、私が使ったのは コピー メソッドで選択した範囲をコピーしていましたが、さらに 貼り付け:=xlPasteValues において ペーストスペシャル を貼り付けるだけとなるように 価値観 は、フォーマットではなく、選択された範囲の
最後に セーブ を実行し、ワークシートに戻ってください。
次に 表示 タブ>> より マクロ >> 選択 マクロを見る
➤ A ダイアログボックス がポップアップ表示されます。
では、その中から マクロ名 を選択します。 書式なしの範囲を別のシートにコピーする でワークブックを選択し、さらに のマクロ .
最後に 実行 選択された マクロ .
このように コピー を選択した場合、選択した範囲のみ 価値観 ノー フォーマット .
3.書式と列幅を指定して範囲を別のシートにコピーする
したい場合があります。 コピー 選択した範囲をそのままにすることができます。 コピー を持つ範囲 フォーマット と 列の幅 .
ここで、私は コピー の範囲にある。 データセット 敷き詰める フォーマットと列幅 シートを使用します。
を使用してタスクを実行する手順を見るには ブイビーエー ,
まず デベロッパー タブ>>選択 ビジュアルベーシック
を使用することもできます。 ALT + F11 をキーボードで開いてください。 ブイビーエー エディタがあります。
次に、新しいウィンドウで Microsoft Visual Basic for Applications。
そこで、オープン インサート >> 選択 モジュール .
A モジュール が開いたら、開いたところに次のコードを入力してください。 モジュール .
Sub Copy_Range_to_Another_Sheet_with_FormatAndColumnWidth() Range("B1:E10").Copy Destination:=Sheets("Format & ColumnWidth").Range("B1") Range("B1:E10").Copy Sheets("Format & ColumnWidth").Range("B1").PasteSpecial Paste:=xlPasteColumnWidths, _ Operation:=xlNone, SkipBlanks:=False,Transpose:=False End Sub.
ここで、宣言したのは サブプロシジャ 範囲を別のシートにコピーし、書式と列の幅を指定する
レンジで撮った B1:E10 既存のシートからコピー先のシート名へコピーする場合 フォーマットと列幅 .
ここで、私が使ったのは コピー メソッドを使って選択範囲をコピーしています。 ペーストスペシャル メソッドに言及したところ 貼り付け:=xlPasteColumnWidths と一緒に選択範囲を貼り付けるようにします。 フォーマット と 列の幅 .
最後に セーブ を実行し、ワークシートに戻ってください。
次に 表示 タブ>>から マクロ >> 選択 マクロを見る
➤ A ダイアログボックス がポップアップ表示されます。
では、その中から マクロ名 を選択します。 範囲を別のシートにコピーし、フォーマットとカラム幅を指定する でワークブックを選択し、さらに のマクロ .
最後に 実行 選択された マクロ .
その結果 コピー で選択した範囲を フォーマット と 列の幅 .
4.VBA 数式で範囲を別のシートにコピーする
データセットにコピーしたい数式がある場合、心配はいりません!以下の範囲をコピーすることができます。 式 を、数式をそのままに別のシートにコピーします。
ここで、私は コピー の範囲にある。 データセット 敷き詰める WithFormula シート
手続きを開始しましょう。
まずはじめに デベロッパー タブ>>選択 ビジュアルベーシック ( を使用することもできます。 ALT + F11 キーボード)
次に開くのは Microsoft Visual Basic for Applications。
そこから インサート >> 選択 モジュール .
A モジュール が開いたら、開いたところに次のコードを入力してください。 モジュール .
Sub Copy_Range_withFormula_ToAnother_Sheet() Range("B1:E10").Copy Sheets("WithFormula").Range("B1").PasteSpecial Paste:=xlPasteFormulas, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub.
ここで、宣言したのは サブプロシジャ 式を含む範囲を別のシートにコピーする
レンジで撮った B1:E10 既存のシートからコピー先のシート名へコピーする場合 WithFormula .
ここで、私が使ったのは コピー メソッドを使って選択範囲をコピーしています。 ペーストスペシャル メソッドに言及したところ 貼り付け:=xlPasteFormulas を搭載するようにしました。 計算式 を選択した範囲と一緒に表示します。
最後に セーブ を実行し、ワークシートに戻ってください。
次に 表示 タブ>> より マクロ >> 選択 マクロを見る
➤ A ダイアログボックス がポップアップ表示されます。
では、その中から マクロ名 を選択します。 式を含む範囲を別のシートにコピーする の中のワークブックも選択します。 のマクロ .
最後に 実行 選択された マクロ .
このように コピー 選択されたすべてのセル範囲を 計算式 .
類似の読み物。
- VBA範囲オフセットの使い方(11の方法)
- Excelで範囲内の各セルをVBAで処理する(3つの方法)
- ExcelでVBAのRangeオブジェクトを使うには(5つのプロパティ)
5.オートフィットを使用した範囲を別のシートにコピーする
一方 コピー の範囲を別のシートに移動することもできます。 オートフィット メソッドを使用します。 ブイビーエー まで オートフィット コピーした範囲を新しいシートにコピーします。
ここで、私は コピー の範囲にある。 データセット 敷き詰める オートフィット シート
手続きを開始しましょう。
まず デベロッパー タブ>> 選択 ビジュアルベーシック
を使用することもできます。 ALT + F11 をキーボードで開いてください。 ブイビーエー エディタがあります。
次に、ウィンドウを開くと Microsoft Visual Basic for Applications。
次に、以下を開きます。 インサート >> 選択 モジュール .
A モジュール が開いたら、開いたところに次のコードを入力してください。 モジュール .
Sub Copy_Range_withFormat_AutoFit() Sheets("Dataset").Select範囲("B1:E10").CopySheets("AutoFit").Select範囲("B1").Select ActiveSheet.Paste Columns("B:E").AutoFit End Sub
ここで、宣言したのは サブプロシジャ Copy_Range_withFormat_AutoFit
まず、ワークシートを選択しました データセット .その後、レンジで撮影 B1:E10 という名前のシートからコピー先のシートにコピーします。 オートフィット .
ここで、私が使ったのは コピー メソッドで選択した範囲をコピーし オートフィット メソッドは、与えられたカラムをオートフィットします。 B:E .
最後に セーブ を実行し、ワークシートに戻ってください。
次に 表示 タブ>> より マクロ >> 選択 マクロを見る
➤ A ダイアログボックス がポップアップ表示されます。
では、その中から マクロ名 を選択します。 Copy_Range_withFormat_AutoFit の中のワークブックも選択します。 のマクロ .
最後に 実行 選択された マクロ .
したがって、それは コピー 選択した範囲を新しいシートに移動し、さらに オートフィット を表示します。
6.VBA 範囲を別のワークブックにコピーする
必要であれば、次のこともできます。 コピー あるシートから別のワークブックの別のシートへ範囲を指定する。
ここで、私は コピー の範囲にある。 データセット 敷き詰める シート1 の 書籍1 ワークブック
手続きを開始しましょう。
まず デベロッパー タブ>> 選択 ビジュアルベーシック(Y を使用することもできます。 ALT + F11 キーボード)
すると、次のような画面が表示されます。 Microsoft Visual Basic for Applications。
次に、以下を開きます。 インサート >> 選択 モジュール .
A モジュール が開いたら、開かれた場所に次のコードを入力します。 モジュール .
Sub Copy_Range_WithFormat_Toanother_WorkBook() Workbooks("Excel VBA Copy Range to Another Sheet.xlsm").Worksheets("Dataset").Range("B3:E10"). _ コピー Workbooks("Book1").Worksheets("Sheet1").Range("B3") End Sub
ここで、宣言したのは サブプロシジャ 形式を持つ範囲を別のワークブックにコピーする
レンジを撮りました B3:E10 シート名から データセット 既存のシートから新しいワークブックの名前にコピーする場合 書籍1 とシート名 シート1 .
ここで、私が使ったのは コピー メソッドを使用して、選択した範囲を新しいワークブックにコピーします。
最後に セーブ を実行し、ワークシートに戻ってください。
次に 表示 タブ>> から マクロ >> 選択 マクロを見る
➤ A ダイアログボックス がポップアップ表示されます。
では、その中から マクロ名 を選択します。 形式を持つ範囲を別のワークブックにコピーする の中のワークブックも選択します。 のマクロ .
最後に 実行 選択された マクロ .
今なら コピー から選択した範囲を表示します。 データセット シートを別のワークブックにコピーします。
7.範囲を別のシートの最終行にコピーする
いずれにせよ、もしあなたが コピー 特定のセルまたは最後のセルから別のシートに範囲を移動するには、次のようにします。 ブイビーエー .
手順に入る前にお伝えしたいのは、新たに2枚のシートを撮影したことです。 フルネーム、Eメール と 住所 .
を観察してみよう。 データセット2 シートが先です。
以下は、その内容です。 最後のセルの下 シートを使用します。
ここで、私は コピー の範囲にある。 データセット2 敷き詰める 最後のセルの下 ただし、最初の空白でないセルから。
まずはじめに デベロッパー タブ>> 選択 ビジュアルベーシック
次に開くのは Microsoft Visual Basic for Applications。
次に、以下を開きます。 インサート >> 選択 モジュール .
A モジュール が開いたら、開いたところに次のコードを入力してください。 モジュール .
Sub Copy_Range_BelowLastCell_AnotherSheets() Sheets("Dataset2").Select lr = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row Range("A2:C" & lr).Copy Sheets("Below Last Cell").Select lrAnotherSheet = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row Cells(lrAnotherSheet + 1, 1).Select ActiveSheet.Paste Columns("A:C").AutoFit Endサブ
ここで、宣言したのは サブプロシジャ Copy_Range_BelowLastCell_AnotherSheets
まず、シートを選択 データセット2 を使用し、その後に 列 メソッドでカウントします。 最終段 で、カウントされた行を保持します。 ラー .
そして、レンジを撮影 A2:C & lr 既存のシートからコピー先のシート名へコピーする場合 最後のセルの下 .
今回も使用しました。 列 メソッドでカウントします。 最終段 という名前の別のシートの 最後のセルの下 で、カウントされた行を保持します。 lrAnotherSheet .
ここで、私が使ったのは コピー メソッドで選択した範囲をコピーし オートフィット メソッドは、与えられたカラムをオートフィットします。 A:C .
最後に 保存 を実行し、ワークシートに戻ってください。
次に 表示 タブ>>から マクロ >> 選択 マクロを見る
➤ A ダイアログボックス がポップアップ表示されます。
では、その中から マクロ名 を選択します。 Copy_Range_BelowLastCell_AnotherSheets の中のワークブックも選択します。 のマクロ .
最後に 実行 選択された マクロ .
したがって、それは コピー を選択すると、選択された範囲が表示されます。 貼り付け を別のシートの最後の行から取得します。
8.VBAで範囲を別のワークブックの最終行にコピーする
を希望する場合 コピー の範囲を別のワークブックのシートの最後の行に移動することもできます。 ブイビーエー .
ここで、私は コピー の範囲にある。 データセット2 敷き詰める シート1 の 書籍2 ただし、最初の空白でないセルから。
手順を開始するには
まず デベロッパー タブ>> 選択 ビジュアルベーシック
を使用することもできます。 ALT + F11 をキーボードで開いてください。 ブイビーエー エディタがあります。
次に、新しいウィンドウで Microsoft Visual Basic for Applications。
そこから インサート >> 選択 モジュール .
A モジュール が開いたら、開いたところに次のコードを入力してください。 モジュール .
Sub Copy_Range_BelowLastCell_To_Another_Workbook() Dim wsCopy As Worksheet Dim wsDestination As Worksheet Dim lCopyLastRow As Long Dim lDestLastRow As Long Set wsCopy = Workbooks("Excel VBA Copy Range to Another Sheet.xlsm").Worksheets("Dataset2") Set wsDestination = Workbooks("Book2.xlsx").Worksheets("Sheet1") lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row lDestLastRow =wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Offset(1).Row wsCopy.Range("A2:C" & lCopyLastRow).コピー wsDestination.Range("A" & lDestLastRow) End Sub
ここで、宣言したのは サブプロシジャ コピー_範囲_下_最後のセル_別のワークブックに どこ wsCopy と wsDestination アール ワークシート のタイプになります。 lCopyLastRow と lDestLastRow アール ロング のタイプになります。
まず、中古 セット で、コピーするシートとコピー先のシートの変数を設定します。
次に、使用した 列 メソッドを使用して、列のデータに基づいて最後の行を検索します。 A をコピー範囲に入れる。
今回も使用しました。 列 列のデータに基づいて最初の空白行を求める方法 A を使用しています。 オフセット を1つ下に移動させる。
最後に コピー機 のデータ。 データセット2 のシートがあります。 Excel VBA 範囲を別のシートにコピーする.xlsm のワークブックをコピー先に送る。 シート1 ワークブック Book2.xlsx .
今すぐ セーブ を実行し、ワークシートに戻ってください。
次に 表示 タブ>>から マクロ >> 選択 マクロを見る
➤ A ダイアログボックス がポップアップ表示されます。
では、その中から マクロ名 を選択します。 コピー_範囲_最後のセルより下_別のワークブックに の中のワークブックも選択します。 のマクロ .
最後に 実行 選択された マクロ .
したがって、それは コピー 選択した範囲を既存のシートから別のワークブックの最後の行に移動します。
プラクティス部門
これらの説明されたExcelの方法を練習するために、ワークブックに練習シートを用意しました ブイビーエー 範囲を別のシートにコピーする。
結論
今回は、8種類の簡単で手軽なExcelの方法を解説しました。 ブイビーエー 範囲を別のシートにコピーする。 これらの異なる方法は、1つのシートから別のシートへ、また1つのシートから別のワークブックへ範囲をコピーするのに役立ちます。 最後になりましたが、あなたが提案、アイデア、およびフィードバックの任意の種類がある場合は、以下のコメントダウンお気軽にお問い合わせください。