【VBA】1クリックで全部終わらせる「司令塔マクロ」の作り方

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

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

皆さんのエクセル画面、マクロのボタンだらけになっていませんか?

「まず『データクリア』ボタンを押して、次に『取り込み』ボタン、最後に『印刷』ボタンを押す…あ、順番間違えた!」なんてミス、よく見聞きしませんか?

実はこれ、たった3行の「司令塔マクロ」を作るだけで解決できるんです。

この記事は、「データの取り込み」「集計」「PDF化」など、複数のマクロボタンを順番にクリックして回るのが面倒くさい!という悩みを解決します。

プログラミングの「部品化」という考え方にもつながる、とても大切なテクニックになります。

それではいきましょう!

【業務効率化】VBAの記事を見る

なぜ「司令塔(制御用Sub)」が必要なの?

一つの長いマクロに全部書いても動きますが、修正が大変です。

印刷部分だけ直したいのに、全部見直さなきゃ…」となってしまいます。

だから、処理ごとに小さなマクロ(部品)を作って、最後にそれをまとめる「司令塔」を作ります。

一括実行を可能にする「Call」

使い方は超シンプル。Call マクロ名 と書くだけです。

例えば、以下の3つの作業を自動化したいとします。

  1. 掃除する (Sub CleanData)
  2. 計算する (Sub CalculateData)
  3. 報告する (Sub ReportData)

これをまとめる「司令塔」はこうなります。コピペして使ってみてください。

' これが司令塔(制御用Sub)です
Sub MainController()
   
    ' 画面の更新を止めて高速化
    Application.ScreenUpdating = False
   
    ' 1. 掃除マクロを呼び出す
    Call CleanData
   
    ' 2. 計算マクロを呼び出す
    Call CalculateData
   
    ' 3. 報告マクロを呼び出す
    Call ReportData
   
    ' 画面の更新を再開
    Application.ScreenUpdating = True
   
    MsgBox "すべての処理が完了しました!"

End Sub

' --- 以下は呼び出される部品たち(テスト用) ---

Sub CleanData()
    ' ここにデータクリアの処理が入ります
    Debug.Print "1. 掃除完了"
End Sub

Sub CalculateData()
    ' ここに計算処理が入ります
    Debug.Print "2. 計算完了"
End Sub

Sub ReportData()
    ' ここに報告処理が入ります
    Debug.Print "3. 報告完了"
End Sub

ポイント

  • 順番が命: Callを書いた順番通りに実行されます。
  • 読みやすさ: MainController を見るだけで「何をする業務なのか」が一目瞭然になります。

これでボタンは1つでOK。押し忘れも順番間違いもゼロになります。

ぜひ、「司令塔」を作ってみてください。

【業務効率化】VBAの記事を見る


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

この記事を書いた人
ぐー

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

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

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

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

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

コメント

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