【VBA】別シートや別ブックに転記【WorksheetとWorkbooksを使う】
大体でIT 大体でIT2022/9/14
【VBA】別シートや別ブックに転記【WorksheetとWorkbooksを使う】 Excel VBAExcel 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 SubVBAコードを実行してみます。
同じシートに値を転記同じシートに値を転記します。
同じシートに値を転記できます。
同じシートに値を転記できました。
という感じで、シートオブジェクトを省略した場合は、「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つのシートにまとめる