もう「どのファイル?!」と迷わない。VBAで「Workbooks」と「Workbook」を使い分けるコツ

【業務効率化】VBA
スポンサーリンク

こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!

デスクトップにExcelファイルが10個も20個も開いていて、「あれ?今どのファイルに入力してるんだっけ…」と冷や汗をかいた経験、ありませんか?

私は昔、誤って別のファイルに上書き保存をしてしまい、数時間の作業を台無しにした苦い経験があります。 今日は、そんな「ファイル迷子」を卒業するための、Excel VBAの最重要ルールをお話しします。

【業務効率化】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の記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました