【VBA】別シートや別ブックに転記【WorksheetとWorkbooksを使う】
【VBA】別シートや別ブックに転記【WorksheetとWorkbooksを使う】

【VBA】別シートや別ブックに転記【WorksheetとWorkbooksを使う】

大体でIT 大体でIT

2022/9/14

【VBA】別シートや別ブックに転記【WorksheetとWorkbooksを使う】 Excel VBA

Excel VBAを使って、別シートや別ブックに転記したい場合は、「Worksheets」や「Workbooks」を使います。「Worksheets」や「Workbooks」を省略した場合は、「ActiveSheet」や「ActiveWorkbook」になります。別シートや別ブックに転記する方法について、マスターしていきましょう。

はじめに

この記事では、別シートや別ブックに転記する方法について、ご紹介します。

別シートに転記したい場合は、「WorkSheets」を使います。

省略して「Sheets」でもできます。

別ブックに転記したい場合は、「Workbooks」を使います。

「Worksheets」や「Workbooks」を省略した場合は、「ActiveSheet」や「ActiveWorkbook」になります。

別シートや別ブックに転記する方法について、マスターしていきましょう。

では、別シートや別ブックに転記する方法について、解説していきます。

この記事を読むメリット

  • 別シートや別ブックに転記する方法がわかります。
本記事の内容を動画でまとめています

本記事の内容を動画にて解説しております。

VBAコードの作成手順について、動画で確認できます。

こちらの記事も参考になります

  • 別シートや別ブックに値を転記 ←こちらの記事
  • 別シートや別ブックに条件別で値を転記
  • 月別で別シート転記する
  • 取引先ごとで別シート転記する
  • 部署ごとで別シート転記する
  • チェックしたデータを別シート転記する
  • 雛型を使って取引先ごとに別シート転記
  • 雛型を使って月ごとに別シート転記
  • 複数シートを1つのシートにまとめる

目次から見たい項目へ移動すると便利ですよ。

目次

  • 同じシートに値を転記
    • 値を転記
    • ActiveSheetと同じ
  • 別シートに値を転記
    • Worksheetsを使う
    • Sheetsを使う
  • 別ブックに値を転記
    • Workbooksを使う
    • 作業しているブックはThisWorkbookを使う
    • 変数を使う
    • 別ブックを開いて転記
    • 上書き保存して閉じる
  • おわりに

同じシートに値を転記

まずは、同じシートに値を転記してみます。

値を転記

値を転記するVBAコードは、次のようになります。

Sub TEST1() '同じシートに転記 Range("A3") = Range("A1") End Sub

では、実行してみます。

同じシートに値を転記

同じシートに値を転記します。

実行すると、同じシートに値を転記できます。

同じシートに値を転記できました。

ActiveSheetと同じ

先ほどとのVBAコードは、シートオブジェクトが省略されていますので、「ActiveSheet」と同じ意味になります。

次のVBAコードと同じです。

Sub TEST2() '同じシートに転記 ActiveSheet.Range("A3") = ActiveSheet.Range("A1") End Sub

VBAコードを実行してみます。

同じシートに値を転記

同じシートに値を転記します。

同じシートに値を転記できます。

同じシートに値を転記できました。

という感じで、シートオブジェクトを省略した場合は、「ActiveSheet」と同じ意味になります。

別シートに値を転記

次は、別シートに値を転記してみます。

Worksheetsを使う

別シートに値を転記したい場合は、「Worksheets」を使います。

別シートに値を転記するVBAコードです。

Sub TEST3() '別シートに転記 Worksheets("Sheet2").Range("A3") = Worksheets("Sheet1").Range("A1") End Sub

では、VBAコードを実行してみます。

別シートに値を転記

別シートに値を転記します。

別シートに値を転記できます。

別シートに値を転記できました。

Sheetsを使う

「Worksheets」は省略して、「Sheets」とすることもできます。

VBAコードは、次のようになります。

Sub TEST4() '別シートに転記 Sheets("Sheet2").Range("A3") = Sheets("Sheet1").Range("A1") End Sub

では、実行してみます。

別シートに値を転記

別シートに値を転記します。

別シートに値を転記できます。

別シートに値を転記できました。

「Sheets」の方がシンプルです。

別ブックに値を転記

別ブックに値を転記してみます。

別ブックに転記をする際は、「別ブックを開いている」のが条件になります。

では、実際にやってみます。

Workbooksを使う

別ブックに転記したい場合は、「Workbooks」を使います。

「Workbooks」の中に、「ブック名」を入力します。

別ブックに値を転記するVBAコードです。

Sub TEST5() '別ブックに転記 Workbooks("別ブック.xlsx").Sheets("Sheet1").Range("A3") = Workbooks("TEST.xlsm").Sheets("Sheet1").Range("A1") End Sub

では、実行してみます。

別ブックに値を転記

別ブックに値を転記します。

別ブックに値を転記できます。

別ブックに値を転記できました。

作業しているブックはThisWorkbookを使う

作業しているブックを指定する場合は、「ThisWorkbook」を使った方が簡単です。

VBAコードは、次のようになります。

Sub TEST6() '別ブックに転記 Workbooks("別ブック.xlsx").Sheets("Sheet1").Range("A3") = ThisWorkbook.Sheets("Sheet1").Range("A1") End Sub

では、実行してみます。

別ブックに値を転記

別ブックに値を転記します。

別ブックに値を転記できます。

別ブックに値を転記できました。

こんな感じで、作業しているブックを指定する場合は、「ThisWorkbook」がシンプルです。

変数を使う

ブックオブジェクトとシートオブジェクトを、オブジェクトとして「変数」に入力することで、VBAコードを短くすることができます。

VBAコードは、次のようになります。

Sub TEST7() Dim A, B Set A = ThisWorkbook.Sheets("Sheet1") '作業しているファイル Set B = Workbooks("別ブック.xlsx").Sheets("Sheet1") '別ブック B.Range("A3") = A.Range("A1") '別ブックに転記 End Sub

では、実行してみます。

別ブックに値を転記

別ブックに値を転記します。

別ブックに値を転記できます。

別ブックに値を転記できました。

別ブックを開いて転記

別ブックを開いていない場合は、別ブックを開いてから値を転記するといいです。

別ブックを開いて値を転記するVBAコードです。

Sub TEST8() '別ブックを開く Workbooks.Open ThisWorkbook.Path & "\別ブック.xlsx" '別ブックに転記 Workbooks("別ブック.xlsx").Sheets("Sheet1").Range("A3") = ThisWorkbook.Sheets("Sheet1").Range("A1") End Sub

別ブックを開いた場合は、別ブックが「アクティブ」になるので、「ActiveWorkbook」を使って、別ブックを指定した方が簡単です。

Sub TEST9() '別ブックを開く Workbooks.Open ThisWorkbook.Path & "\別ブック.xlsx" '別ブックに転記 ActiveWorkbook.Sheets("Sheet1").Range("A3") = ThisWorkbook.Sheets("Sheet1").Range("A1") End Sub

「ActiveWorkbook」は、省略することもできます。

Sub TEST10() '別ブックを開く Workbooks.Open ThisWorkbook.Path & "\別ブック.xlsx" '別ブックに転記 Sheets("Sheet1").Range("A3") = ThisWorkbook.Sheets("Sheet1").Range("A1") End Sub

開いた別ブックをオブジェクトとして変数に入力して、値を転記する場合は次のようになります。

Sub TEST11() Dim A '別ブックを開く Set A = Workbooks.Open(ThisWorkbook.Path & "\別ブック.xlsx") '別ブックに転記 A.Sheets("Sheet1").Range("A3") = ThisWorkbook.Sheets("Sheet1").Range("A1") End Sub

上記のVBAコードは、すべて同じ結果になります。

では、実行してみます。

同じ階層に別ブックを保存しておきます。

同じ階層に別ブックを保存

では、実行してみます。

別ブックを開いて転記する

別ブックは閉じた状態で実行します。

別ブックを開いて、別ブックに値を転記できます。

別ブックを開いて、別ブックに値を転記できました。

上書き保存して閉じる

別ブックを開いたあとは、上書き保存して閉じると効率的です。

別ブックを開いて転記したあと、上書き保存して閉じるVBAコードです。

Sub TEST12() Dim A '別ブックを開く Set A = Workbooks.Open(ThisWorkbook.Path & "\別ブック.xlsx") '別ブックに転記 A.Sheets("Sheet1").Range("A3") = ThisWorkbook.Sheets("Sheet1").Range("A1") A.Save '上書き保存 A.Close '閉じる End Sub

変数を使わない場合は、次のようになります。

Sub TEST13() '別ブックを開く Workbooks.Open ThisWorkbook.Path & "\別ブック.xlsx" '別ブックに転記 ActiveWorkbook.Sheets("Sheet1").Range("A3") = ThisWorkbook.Sheets("Sheet1").Range("A1") ActiveWorkbook.Save '上書き保存 ActiveWorkbook.Close '閉じる End Sub

では、実行してみます。

別ブックを開いて転記したあと、保存して閉じる

別ブックを閉じた状態で実行します。

別ブックを開いて値を転記したあと、保存して閉じます。

これで、別ブックに値を転記できます。

別ブックを開いて確認してみます。

別ブックを開いて確認

別ブックに値を転記できました。

おわりに

この記事では、別シートや別ブックに転記する方法について、ご紹介しました。

別シートに転記したい場合は、「WorkSheets」を使います。

省略して「Sheets」でもできます。

別ブックに転記したい場合は、「Workbooks」を使います。

「Worksheets」や「Workbooks」を省略した場合は、「ActiveSheet」や「ActiveWorkbook」になります。

別シートや別ブックに転記する方法について、マスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

  • 別シートや別ブックに値を転記 ←こちらの記事
  • 別シートや別ブックに条件別で値を転記
  • 月別で別シート転記する
  • 取引先ごとで別シート転記する
  • 部署ごとで別シート転記する
  • チェックしたデータを別シート転記する
  • 雛型を使って取引先ごとに別シート転記
  • 雛型を使って月ごとに別シート転記
  • 複数シートを1つのシートにまとめる
📎📎📎📎📎📎📎📎📎📎