第8章:シート間・ブック間データ連携
やっほー!まくるだよ🐰💻
今回は、 「別のシート」や「別のブック」からデータを読み書きする魔法 を紹介するねっ✨
複数シートやファイルを扱えるようになると、業務の幅がぐ〜んと広がるよ!
🧭 シート間のデータコピー
Sub CopyBetweenSheets()
Sheets("Sheet1").Range("A1").Copy Destination:=Sheets("Sheet2").Range("A1")
End Sub
-
Sheets("Sheet名")で対象シートを指定 -
Copy Destination:=で転送先もバッチリ!
✨ 値だけコピーしたい場合(PasteSpecial不要)
Sub CopyValueOnly()
Sheets("Sheet2").Range("A1").Value = Sheets("Sheet1").Range("A1").Value
End Sub
📌 .Value を使えば、書式を含めず 値だけコピー できるよ!
📘 他ブックのデータを読み取る
Sub ReadFromOtherWorkbook()
Dim otherBook As Workbook
Set otherBook = Workbooks.Open("C:\Users\user\Desktop\データ元.xlsx")
ThisWorkbook.Sheets("Sheet1").Range("A1").Value = otherBook.Sheets("Sheet1").Range("A1").Value
otherBook.Close SaveChanges:=False
End Sub
-
Workbooks.Openで別のファイルを開く -
.Sheets("Sheet1").Range("A1").Valueで値を取得 -
Close忘れずに!(保存不要ならSaveChanges:=False)
📂 他ブックにデータを書き込む
Sub WriteToOtherWorkbook()
Dim otherBook As Workbook
Set otherBook = Workbooks.Open("C:\Users\user\Desktop\保存先.xlsx")
otherBook.Sheets("Sheet1").Range("B2").Value = "VBAで書き込み!"
otherBook.Save
otherBook.Close
End Sub
-
.Saveを忘れると保存されないので注意!
💡 開いているブック同士のやりとり
Sub CopyBetweenBooks()
Dim sourceBook As Workbook
Set sourceBook = Workbooks("データ元.xlsx")
ThisWorkbook.Sheets("Sheet1").Range("A1").Value = sourceBook.Sheets("Sheet1").Range("A1").Value
End Sub
- すでに開いているブックなら
Workbooks("ファイル名")で取得できる!
📌 よくあるミスと対処法
| ミス例 | 対処法 |
|---|---|
| シート名が間違っていてエラー |
.Sheets("正確な名前") を確認しよう |
| ブックが閉じたまま |
Workbooks.Open で開いてから操作! |
| 保存し忘れ |
.Save を忘れずに書くこと! |
📌 まとめ
-
Sheets("名前")でシートを切り替え -
Workbooks.Openで他ブックを読み込み - 値だけコピーするなら
.Value = .Value - ブック間でもシート間でも同じ構文で操作可能!
次回は、 「第9章:ユーザーフォーム作成」 !
あなただけの魔法のウィンドウを作っちゃおう🧙♀️✨