次の DEMO を見にいく
Excel

Excel VBA初心者が最初に覚える基本ルール集|変数・型・書き方を実例で整理

k.w
\お買い物マラソン開催中/
Contents
  1. はじめに
  2. VBAの「ルール」を先に押さえる理由
  3. Subプロシージャの基本形を覚える
  4. 変数・定数・引数を整理する
  5. 変数宣言(Dim)を必ず書く
  6. データ型の基本を理解する
  7. 処理の流れを「日本語→手順→コード」で落とす
  8. 初心者がやりがちなミス3選と回避策
  9. ルールを守ると何が楽になるか
  10. すぐ使える「基本構造テンプレ」集
  11. よくある質問(FAQ)
  12. まとめ
スポンサーリンク

はじめに

この記事では、Excel VBAの基礎ルールを体系的に整理し、これから学ぶ内容の全体像を先に示します。

単なる用語の説明ではなく、「なぜそのルールが必要なのか」「守ると何が変わるのか」まで含めて理解できる構成にしています。

最初に全体像をつかんでから細部に入ることで、学習中に迷子になる時間を減らします。

この記事でわかること

この記事では、Excel VBAを始めたばかりの人が最初に押さえるべき「書き方の基本ルール」を、実例つきで整理します。

宣言の意味、型の考え方、処理の流れの作り方を、順番に積み上げる形で確認できます。

この記事を読み終えると、宣言から処理、出力までの最小の形を自分で組み立てられるようになります。

さらに、エラーが出たときにどこを見直せばよいかの当たりも付けやすくなります。

この記事が向いている人

これからマクロを触る人や、VBEで何を書けばいいか分からない人に向けた内容です。

なんとなく動くコードは書けるけれど、毎回不安を感じている人にも役立ちます。

基礎を一度きちんと整理し直したい人にも、復習として活用できます。

「マクロとは何か」から確認したい場合は、先に今から始めるExcel VBA(初心者 ー マクロとは?(1)を読むと全体像がつかみやすいです。

VBAの「ルール」を先に押さえる理由

ここでは、なぜ最初に書き方の型を覚えることが重要なのかを具体的に解説します。

ルールは細かい決まりに見えますが、実際は「迷わずに進めるための地図」の役割を持ちます。

最初に地図を手に入れておくと、後から機能を足すときも同じ道順で進められます。

いきなりコードを書くと何が起きるか

ルールを知らずに書き始めると、動くけれど壊れやすいコードになりやすいです。

動かない原因が複数に見えてしまい、どこから直せばよいか分からなくなることがあります。

検索で出てきた断片コードを貼り合わせるだけだと、どこで何が起きているか追いにくくなります。

その結果、少し条件が変わっただけで崩れたり、別のシートで動かなくなったりします。

ルール=読みやすさと事故防止の約束

ルールは正しさだけでなく、読みやすさとミスの減り方に直結します。

読みやすい形にすると、処理の意図が見えやすくなり、修正の判断も速くなります。

あとで直す自分や、引き継ぐ人が迷わないことが、結果的に最短ルートになります。

特に実務では、作って終わりではなく、直しながら育てる時間の方が長くなりがちです。

まず覚える全体像(宣言→処理→出力)

初心者が最初に覚える流れは、宣言して、処理して、結果を出すという順番です。

この順番を固定すると、どこで止まったかを上から順に確認できるので、迷いが減ります。

この順番を固定すると、エラーの切り分けも早くなり、エラー処理の判断方法のコツの内容も理解しやすくなります。

Subプロシージャの基本形を覚える

まずはすべての処理の土台となるSubプロシージャの形を押さえます。

Subの形が分かると、どこから書き始めてどこで終えるかが明確になり、コード全体が安定します。

最初は短いSubで動作確認し、動いたら少しずつ行を増やす流れにすると、失敗しても戻りやすいです。

Sub〜End Subの役割

Subは「これから一連の処理をします」というまとまりを作る箱です。

この箱の中に、入力、処理、出力の順で書いていくと、手順の見失いが減ります。

End Subは「ここまでが処理の範囲です」と区切る終点です。

終点があることで、どこまでが一つの処理かがはっきりし、切り出しや再利用もしやすくなります。

コメントの書き方と残し方

コメントは未来の自分へのメモなので、何をしたいかを日本語で短く残します。

入力の場所と出力の場所だけでも書いておくと、後から読むときの迷いが減ります。

動いた理由より、意図と前提条件を書いておくと直すときに迷いません。

「どのシートを対象にするか」や「想定している入力形式」などの前提があるなら、コメントで先に宣言しておくと安全です。

最小の動くサンプル(動作確認の手順)

最初は「動く最小」を作り、次に1行ずつ増やしていくのが安全です。

次のサンプルは、メッセージを出すだけなので動作確認に向いています。

“`vb

Sub Hello()

MsgBox “Hello VBA”

End Sub

“`

もし処理が重いと感じたら、画面更新の制御も早めに覚えると得をします。

ちらつきが気になるときはマクロ実行時のちらつき防止の考え方がそのまま使えます。

変数・定数・引数を整理する

値の扱いを理解することが、VBAを安定して書くための第一歩です。

ここが曖昧だと、処理の途中で何を保存しているのか分からなくなり、デバッグに時間がかかります。

逆に言えば、箱と中身の関係が整理できるだけで、コードの見通しが一気によくなります。

変数とは何か(値を入れる箱)

変数は、途中の値を一時的に入れておく箱で、処理の途中経過を保管します。

箱に名前をつけておくと、あとで読み返したときに意味が追いやすくなります。

変数を使う目的は、同じ値を何度も取りに行かずに済ませたり、途中結果を分けて確認したりすることです。

定数とは何か(固定値の扱い)

定数は、変えない値に名前をつけて、ルールを一か所で管理するやり方です。

固定値をコード中に何度も書くと、変更時に漏れが出やすいです。

たとえば税率や締め日など、あとで変わる可能性がある固定値ほど、定数にしておくと安全です。

引数とは何か(受け渡しの口)

引数は、別の処理へ値を渡すための入口と出口のようなものです。

「この処理は何を受け取って、何を返すのか」を明確にできます。

引数を使うと、同じ処理を別の値で繰り返し使えるようになり、コードの重複が減ります。

初心者が混乱しやすい言い回しの整理

変数は箱の名前で、値は箱に入れる中身だと分けて考えると混乱しにくいです。

同じ変数でも、タイミングによって中身が変わるので、いつ代入しているかを意識すると理解が進みます。

引数は箱そのものではなく、箱へ入れる値を渡す仕組みだと捉えると理解が進みます。

引数で受け取った値を、処理の中で別の変数に入れ直すと、役割が分かれ、読みやすさが上がります。

変数宣言(Dim)を必ず書く

ここでは宣言の重要性と、初心者が見落としやすいポイントを整理します。

宣言は「変数の名前と型を先に決める」という約束なので、後から読んだときに意図が追いやすくなります。

最初に宣言を整えておくと、処理が増えても迷子になりにくく、修正が必要になったときも戻る場所がはっきりします。

宣言しないと起きやすいトラブル

宣言しないと、タイプミスがそのまま新しい変数として扱われることがあります。

たとえばTotalのつもりでToatlと書いても、エラーにならずに別の箱が作られてしまいます。

その結果、想定と違う場所で空の値が使われ、原因が見つけにくくなります。

さらに、数値のつもりが文字列として扱われるなど、気づきにくい不具合が混ざりやすくなります。

Option Explicitの意味

Option Explicitは、変数宣言を強制して、ミスを早期に見つけるための設定です。

宣言していない変数を使うと、その場で止まるので、原因が分からないまま進む時間が減ります。

最初は面倒でも、慣れるほどに作業時間が短くなります。

習慣化すると、初心者がつまずきやすい「どこで間違えたのか分からない状態」を避けやすくなります。

宣言の基本パターン3つ(単体・複数・スコープ)

単体の宣言は、意味が読み取りやすいので初心者に向いています。

“`vb

Dim total As Long

“`

複数宣言は便利ですが、型の付け方を間違えやすいので最初は慎重に扱います。

“`vb

Dim r As Long, c As Long

“`

スコープは「どこから見えるか」の範囲で、狭いほど事故が減りやすいです。

変数名の付け方ルール(読みやすさ優先)

変数名は短すぎない言葉で、用途が分かる名前にすると読み返しが楽です。

セル操作をよく書くなら、次に読むセル(行・列)制御の基本でも同じ考え方が役立ちます。

データ型の基本を理解する

データ型の選び方を理解すると、計算や判定のミスを大きく減らせます。

型が曖昧なままだと、動くときと動かないときが混ざり、原因の特定が難しくなります。

型とは何か(入れられる値の種類)

型は、その箱に入れてよい値の種類を決めるルールです。

同じ見た目でも、文字列と数値では振る舞いが変わるので注意が必要です。

型を決めると、計算や比較の失敗が減り、処理が安定します。

型が決まると補完やエラー表示も分かりやすくなり、修正の時間が短くなります。

よく使う型(String/Long/Double/Boolean/Variant)

初心者が最初に迷いやすい型を、用途の目安で整理します。

迷ったときは「数字として計算するか」「文字として扱うか」を先に決めると選びやすいです。

主な用途よくある例
String文字列氏名、コード、住所
Long整数件数、行番号、ID
Double小数割合、金額の計算、平均
Boolean真偽フラグ、判定結果
Variant何でも型が不明な受け取り

Stringは「見た目が数字でも文字として扱いたい」場面に向いています。

Longは件数や行番号のように小数が不要な値で、意図が伝わりやすいです。

Doubleは割り算や平均などで小数が出る計算に向いています。

Booleanは判定結果をTrueかFalseに固定できるので、条件分岐が読みやすくなります。

Variantは便利ですが、最後まで曖昧にしない意識が重要です。

型を間違えたときの典型例

数字に見える文字列を足すと、計算ではなく結合になることがあります。

たとえば”1″と”2″が”12″になる場合は、文字列として扱われている可能性が高いです。

日付や数値が絡むときは、文字列として扱っていないかを最初に疑います。

特にセルから読む値は、見た目どおりの型とは限らないので確認が有効です。

迷ったときの選び方の目安

行番号や件数はLongに寄せると、意図が明確になります。

金額は小数が必要かどうかでLongかDoubleを選ぶと迷いが減ります。

不明な受け取りをVariantにしても、処理の途中で型を決め直す方が安全です。

型を決め直すときは、CStrやCLngなどで変換する方針を先に決めておくと統一できます。

処理の流れを「日本語→手順→コード」で落とす

コードを書く前の準備段階を整えることで、完成までの迷いを減らします。

いきなりVBEに向かうのではなく、まず紙に書く感覚で手順を整理すると、途中で何をしているか見失いにくいです。

特に初心者のうちは、思いついた順に書くよりも、入力と出力を先に固定した方が作業が安定します。

日本語で手順を書くテンプレ

最初に日本語で、入力、処理、出力を1行ずつ書くと、迷子になりにくいです。

この段階では難しい言葉を使わず、「A1を読む」「2倍する」「B1へ書く」のように短い文章で十分です。

その日本語をコメントにしてからコードを書くと、途中で戻っても復帰しやすいです。

コメントが残っていると、動かないときも「どの手順で止まっているか」を確認しやすくなります。

手順を3ブロックに分ける(入力・処理・出力)

入力は「どこから何を取るか」を明確にします。

ここが曖昧だと、別のセルや別シートを触ってしまい、原因が分かりにくくなります。

処理は「何をどう変えるか」を一段ずつ積み上げます。

計算が増えたら、途中結果を変数に置いて、1段ずつ確認できる形にすると安全です。

出力は「どこへ何を書くか」を最後に固定します。

出力先を先に決めておくと、動作確認のときに結果が見つけやすくなり、修正も速くなります。

実例:セルの値を読み取り、計算して書き戻す

次の例は、A1の値を取り、2倍してB1に書くという最小の流れです。

“`vb

Option Explicit

Sub DoubleValue()

Dim x As Double

x = Range(“A1”).Value

Range(“B1”).Value = x * 2

End Sub

“`

セル参照の考え方をまとめて確認したい場合は、セル(行・列)制御の基本を合わせて読むと整理できます。

初心者がやりがちなミス3選と回避策

ここでは実際によくある失敗例を取り上げ、事前に防ぐ視点を身につけます。

同じミスを一度でも経験すると手が止まりやすいので、先にパターンを知っておくと安心です。

つまずいたときは、どこで止まったかではなく、宣言と参照の前提が合っているかから確認します。

変数の宣言漏れ

宣言漏れはOption Explicitでほぼ防げるので、最初に設定して習慣化します。

変数名のタイプミスがその場で分かるだけで、原因探しの時間が大きく減ります。

宣言が揃うと、エラーが出た場所が分かりやすくなり、修正が速くなります。

宣言するときは「どの値を入れる箱か」を意識し、使い回しの箱を作りすぎないのがコツです。

型の不一致(文字列と数値)

見た目が数字でも文字列のことがあるので、足し算前に型を疑います。

たとえば”10″と”2″が結合されて”102″になるような場面は、初心者が最初にぶつかりやすいです。

入力欄のチェックの考え方は、実務寄りのセルの値チェックマクロ入門でも同じです。

数値計算をする前に、想定どおりの型になっているかを一度だけ確認する習慣をつけます。

オブジェクト参照の扱いミス

RangeやWorksheetの参照先が曖昧だと、別のシートを操作してしまうことがあります。

ActiveSheetに頼ると、操作中のシートが変わった瞬間に結果が変わるので注意が必要です。

対象を明確にするために、どのブックとシートを触るかを先に決めます。

慣れてきたら、Worksheet変数に代入してから操作する形にすると事故が減ります。

ルールを守ると何が楽になるか

基本を守ることで得られる長期的なメリットを具体的に確認します。

書き方の型があると、迷いが減り、追加や修正も同じ手順で進められます。

作業を積み重ねるほど、ルールが「時短の仕組み」として効いてきます。

デバッグ(原因切り分け)が速くなる

宣言と手順が揃うと、問題が「どの段階で起きたか」を切り分けられます。

たとえば入力で失敗しているのか、計算が崩れているのか、出力先が違うのかを順に確認できます。

結果として、直す時間よりも、原因を探す時間が減ります。

同じミスを繰り返しにくくなるので、学習の手戻りも減ります。

他人にも未来の自分にも読める

読みやすいコードは、引き継ぎだけでなく、数か月後の自分にも効きます。

変数名とコメントが整っているだけで、どこを直せばよいかがすぐ分かります。

特に業務で増えていくマクロは、後から読む時間が必ず発生します。

読み返す時間が短いほど、修正のたびに気持ちが軽くなります。

応用記事を理解しやすくなる

応用記事は前提が省略されがちなので、基本ルールがあると理解が早くなります。

宣言と型の感覚があると、難しいコードでも「何を受け取り、どう変えて、どこへ出すか」を追えます。

たとえばファイル操作へ進むなら、ファイルを指定して開く②を読むと次の一歩が作りやすいです。

エラーが出たときに慌てないためにも、基本の型を知っていることが大きな助けになります。

すぐ使える「基本構造テンプレ」集

すぐに流用できる形を持っておくことで、実装スピードが安定します。

最小テンプレ(Hello World)

最小テンプレは、処理の入口と出口が見える形にしておくと使い回しやすいです。

“`vb

Option Explicit

Sub Template()

‘入力

‘処理

‘出力

End Sub

“`

セル操作テンプレ(読み取り→書き込み)

セル操作は、読み取り先と書き込み先を最初に決めるとミスが減ります。

“`vb

Option Explicit

Sub CellTemplate()

Dim src As Variant

src = Range(“A1”).Value

Range(“B1”).Value = src

End Sub

“`

エラーに備えるテンプレ(入口だけ)

エラーを無視するのではなく、必要な場面でだけ扱うのが基本です。

入口だけでも形を持っておくと、[エラー処理の判断方法のコツ](/excel_vba-004/)を読みながら調整できます。

“`vb

Option Explicit

Sub ErrorTemplate()

On Error GoTo EH

‘処理

Exit Sub

EH:

MsgBox Err.Description

End Sub

“`

よくある質問(FAQ)

初心者から特に多い疑問をまとめて整理します。

変数名は英語じゃないとだめ?

英語でなくても動きますが、短いローマ字より意味が分かる名前を優先すると迷いにくいです。

対象が数字ならcountやtotalのように役割が伝わる名前にすると、読み返したときに理解が速いです。

チームで共有するなら、表記ルールを決めて揃えると読みやすさが上がります。

名前の付け方で迷うなら、処理の流れに沿って「入力」「途中結果」「出力」で命名を分けると整理できます。

Variantは使っていい?

使ってもよいですが、最後までVariantのままにしない方が事故が減ります。

受け取った直後にCStrやCLngなどで型を決めると、あとから計算や比較の失敗が起きにくいです。

途中で型を決め直す意識を持つと、処理が安定します。

ただしセルの値をそのまま一時保管するときはVariantでも困らない場面が多いです。

Option Explicitは必須?

必須ではないですが、初心者ほど必須だと思って設定するのがおすすめです。

タイプミスがその場で止まるので、原因が分からないまま進む時間が減ります。

宣言漏れのバグは、早い段階で潰した方が学習効率が上がります。

エラーが出たときに落ち着いて確認する手順は、エラー処理の判断方法のコツと合わせて覚えると実戦向きになります。

コメントはどれくらい書けばいい?

最初は多めでよいので、入力と出力がどこかだけは必ず残すと迷いにくいです。

動いた理由よりも、何を期待している処理なのかを短く書くと後から役立ちます。

まず次に何を学べばいい?

次はセル操作とエラー処理をセットで覚えると、実務で困りにくくなります。

セル操作はセル(行・列)制御の基本で具体例を増やすと手が動きます。

その次にファイル操作へ進むと、仕事の自動化の幅が一気に広がります。

まとめ

最後に、この記事で押さえるべきポイントを簡潔に振り返ります。

迷ったときは、宣言と型の確認に立ち戻るだけで原因が見えやすくなります。

今日覚えるべき要点

VBAの基本は、宣言して、処理して、出力するという順番を崩さないことです。

Option Explicitと型の意識を持つだけで、つまずきが大きく減ります。

最初は短いマクロで動作確認し、成功したら1行ずつ増やすと失敗が小さく済みます。

セル参照が増えるほど、対象のシートと範囲を明確に書く習慣が効いてきます。

次に読むと理解がつながるテーマ

最初の全体像を復習したいなら今から始めるExcel VBA(初心者 ー マクロとは?(1)へ戻ると流れがつながります。

操作を増やしたいならファイル操作のファイルを指定して開く②も次の候補になります。

実務でのミスを減らしたいなら、入力チェック系の記事へ進むと手応えが出やすいです。

スポンサーリンク
記事URLをコピーしました