【VBA入門】今から始めるVBA

本ページはプロモーションが含まれています

皆さんプログラミングしていますか?

プログラミングなんて簡単!・・とは言いませんが、これだけITが発展した現代においては一定の知識を持っていて損はないですし、業務効率の代名詞と言える”システム化”を担当するには必須レベル

IT職ではない人でも身近でトライ&エラーし放題、身に着けたスキルがすぐに活かせるEXCELとVBAがいいんじゃないかと言うことで今さらではありますがVBA入門を私なりにまとめます

VBAを始める前に

VBAを始める前にまずVBAの概要とExcelの準備です

VBAとは

VBAVisual Basic for Applications)は、Microsoft 365・Office製品(Excel、Accessなど)で使用できるプログラミング言語です

よくVBAとマクロの違いみたいな話を見ますがマクロは機能名でVBAはその中身って感じで会話の中では同じものとして扱って大丈夫かなと

VBAを使いこなせば、これまで何時間もかかっていた作業がボタン一つで一瞬で終わる、なんてことも夢ではありません

VBAでできる作業例
  • 定型的なメールの作成・送信
  • 毎月のレポート作成
  • 大量のデータ整形・転記
  • ブラウザを自動操作してエクセル情報の転記

開発者タブを表示しよう

ExcelでVBA始めるならまず開発タブを表示しましょう

正直慣れるとVBEの画面は”Alt+F11“で開くしマクロは”Alt+F8“で実行しちゃうので使う頻度は減りますが最初はあったほうが便利です

開発者タブの表示手順
  1. 「ファイル」タブ → 「オプション」をクリック
  2. 「リボンのユーザー設定」を開く
  3. 右側の「メインタブ」の一覧から「開発」にチェックを入れ、「OK」をクリック

VBAで押さえておきたい基本

VBAを学ぶ上で、最低限知っておきたい基本的な概念をいくつか紹介します

最初は難しく感じるかもしれませんが、深堀は別でやりますので今は「こういうものがあるんだな」くらいの気持ちで読み進めてください

変数と定数

プログラミングでは、データ(数値や文字列など)を一時的に保存しておくための「箱」のようなものを使いますが、この箱のことを変数定数と呼びます

変数と定数について
  • 変数: 中身を自由に入れ替えられる箱
  • 定数: 一度入れたら中身を変えられない箱
Sub test()
Const tax_rate As Double = 0.1 '---税率
Dim price_excluding_tax As Long '---税抜き価格
Dim price_including_tax As Long '---税込み価格

price_excluding_tax = 1980
price_including_tax = price_excluding_tax * (1 + tax_rate)
Debug.Print (price_including_tax)
End Sub

データ型

変数や定数には、どんな種類のデータを入れるかをあらかじめ決めておく必要があり、これをデータ型と呼びます

例えば、数値を扱うのか、文字を扱うのか、日付を扱うのか、といった区別です

データ型内容
Long整数1, 100, -50
String文字列“こんにちは”, “Excel”
Date日付・時刻2025/08/30
Boolean真偽値 (True/False)True, False

条件分岐、ループ処理などのフロー制御

プログラムは基本的に上から下へ順番に実行されますが、フロー制御を使うことで状況に応じて処理の流れを変えることができます

フロー制御の例
  • ループ処理 (For, Do Whileなど): 同じ処理を何度も繰り返したい場合に使います
    例えば「○○を10回繰り返す」「△△という条件が満たされるまで繰り返す」といった処理が可能です
  • 条件分岐 (If): 「もし○○ならAの処理、そうでなければBの処理をする」というように、条件によって処理を分けます
' A1~A10のセルの中で300以上の数字だったら文字を赤くする
Sub test()
Dim i As Long
For i = 1 To 10
    If Cells(i, 1).Value >= 300 Then
        Cells(i, 1).Font.Color = RGB(255, 0, 0)
    End If
Next
End Sub

メインプロシージャとサブプロシージャ

VBAでは、一連の処理のまとまりをプロシージャと呼びます

機能や仕組みではなく、役割や考え方みたいな位置づけなので必ずしもこの二つが必要ってわけではなく簡単なプログラムならプロシージャー1つなんてことも多々ありますし、サブプロシージャーのさらにサブプロシージャーを作ったりすることもあります

車でいうとメインプロシージャが車の組み立て、サブプロシージャーが各部品の作成のイメージですね

プロシージャーについて
  • メインプロシージャ: 一連の処理を始めて完了させる主たるプログラム
  • サブプロシージャ: 特定の処理(例えば、ボディを作る、エンジンを作る)を部品として独立させたプログラム※メインプロシージャから呼び出して使います
Sub MainProcedure()
    Debug.Print ("これがメインプロシージャーです")
    Call SubProcedure1
    Call SubProcedure2
End Sub
Sub SubProcedure1()
    Debug.Print ("これがメインプロシージャー1です")
End Sub
Sub SubProcedure2()
    Debug.Print ("これがメインプロシージャー2です")
End Sub

可読性の重要性

VBAは自分だけでなく、他の人がコードを読む(または将来の自分が見返す)可能性もあります

誰が見ても分かりやすい、可読性の高いコードを書くことは非常に重要です

インデントについて

インデントとは、行頭の字下げのことで処理の塊(ブロック)を視覚的に分かりやすくするために行います

If文やFor文などフロー制御の中の処理は、インデントを下げるのが一般的です

インデントについて

処理の塊で行頭にタブキーかスペース(一般的には半角スペース×4)を付けます

' 悪い例
If Range("A1").Value > 10 Then
MsgBox "10より大きいです"
End If

' 良い例
If Range("A1").Value > 10 Then
    MsgBox "10より大きいです"
End If

変数などの命名規則について

変数やプロシージャの名前は、その役割がひと目で分かるように付けることが大切です

例えば、”a"や”b"のような無意味な名前ではなく、"userName"(ユーザー名)や"calculateTotalPrice"(合計金額を計算する)のように一見して意味が分かるようにすることが望ましいです

書き方にも規則性がありまして”定数は全て大文字にする”、”プレフィックスでデータ型を示す”、”単語を特定の文字で繋ぐ”などなど言語や時代によって変化はありますが少なくとも一つのプログラムの中では一貫したルールにすべきです

代表的な命名規則
  • キャメルケース
  • スネークケース
  • ケバブケース

モジュールの種類

VBAのコードを記述する場所をモジュールと呼びます

モジュールにはいくつか種類がありますが、初心者がまず覚えておくべきなのは以下の2つです

モジュールについて
  • 標準モジュール: 一般的なプロシージャ(SubやFunction)を記述する、最も基本的なモジュールです
  • クラスモジュール: 小規模なプログラムになりがちなVBAの世界では見かける頻度は低いですが、いわゆるオブジェクト指向という考え方に基づいたもので、より複雑で大規模なプログラムを作る際に役立ちます。

まとめ

今回は、VBAの魅力とその基本的な概念についてお話ししました。最初は覚えることが多くて大変に感じるかもしれませんが、一つ一つは決して難しいものではありません。

VBAを学ぶ最大のメリットは、日々の業務に直結するスキルであるということです。学習したことがすぐに実践で活かせ、成果が目に見えやすいので、モチベーションを維持しやすいのも特徴です。

このブログでは、今後もVBAの具体的な書き方や便利なテクニックをどんどん紹介していきます。ぜひ、次回の記事もチェックして、退屈な繰り返し作業から解放され、より創造的な仕事に時間を使えるようになりましょう!✨


何か聞きたいことがあれば お問い合わせページ かLINEで友達追加してお気軽に連絡してください
※普通の会社員なのでレスポンスはお察しください🙇

👇👇👇友達追加はこちらをタップ
友だち追加

👇👇👇QRを読み取る場合はこちら

コメント

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