こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
デスクトップにExcelファイルが10個も20個も開いていて、「あれ?今どのファイルに入力してるんだっけ…」と冷や汗をかいた経験、ありませんか?
私は昔、誤って別のファイルに上書き保存をしてしまい、数時間の作業を台無しにした苦い経験があります。 今日は、そんな「ファイル迷子」を卒業するための、Excel VBAの最重要ルールをお話しします。
WorkbooksとWorkbookの違い:イメージは「本棚」
VBAを学ぶとき、最初につまずきやすいのがこの2つの使い分けです。
でも、学校の図書室にある「本棚」をイメージすると、スッと理解しやすいです。
- Workbooks(ワークブックス) = 本棚全体
「s」がついている複数形です。今Excelで開いている「すべてのファイル」というグループを指します。 - Workbook(ワークブック) = 本の1冊
特定の「このファイル!」という、たった1つのファイルを指します。
「本棚(Workbooks)」の中に、「本(Workbook)」がたくさん並んでいる状態ですね。 VBAへ指示を出すときは、「本棚(Workbooks)の中から、この1冊(Workbook)を取って操作してね!」という書き方をします。
ステップ1:現在開いているブックの総数を確認する
では、実際にどう使うのか見てみましょう。
まずは、今Excelが何冊の本(ファイル)を認識しているかを確認するコードです。
Sub CountBooks()
' 開いているブックの数を数える
MsgBox "今、開いているファイルは " & Workbooks.Count & " 冊です!"
End Sub
「Workbooks(本棚)」に対して「Count(数えて)」と命令しています。これで、Excelが現在把握しているファイルの数が正確にわかります。
ステップ2:特定のファイルを指定して安全に操作する
次は、実務でよく使う「マスタファイルを開いて操作する」場面です。
Sub OpenAndCloseBook()
Dim targetBook As Workbook
' "Data.xlsx" というファイルを開く(パスは自分の環境に合わせてください)
Set targetBook = Workbooks.Open("C:\Users\Public\Data.xlsx")
' 開いたファイルの名前を表示
MsgBox targetBook.Name & " を開きました!"
' ファイルを閉じる(保存する場合はTrueに)
targetBook.Close SaveChanges:=False
End Sub
このコードのポイントは、「どのファイルを操作しているか」をVBAが完璧に把握している点です。
手作業だと「うっかり別のファイルを閉じてしまった!」というミスが起きますが、VBAなら100%正確に、指定したファイルだけを操作してくれます。
まとめ
「s」があるかないか。たったそれだけの違いですが、これがマスターできれば大量のブックやシートを自在に操る準備が整ったも同然です。
VBAという頼もしい相棒を味方につけて、ミスゼロの快適なExcelライフを送りましょう!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

コメント