
Excel VBA の文字列結合 — & と + の違い、そして文字列を壊す Null の罠
VBA でテキストをつなぐ方法は & と + の 2 つあるが、安全なのは片方だけ。なぜ & だけが信頼できる「文字列の接着剤」なのか、+ に潜む Null の罠、そして Join に切り替えるべきタイミングを解説します。

VBA でテキストをつなぐ方法は & と + の 2 つあるが、安全なのは片方だけ。なぜ & だけが信頼できる「文字列の接着剤」なのか、+ に潜む Null の罠、そして Join に切り替えるべきタイミングを解説します。

UCase と LCase はデータを「保存」するための関数ではありません — 「比較」と「表示」のための関数です。VBA の = がなぜ大文字小文字を区別するのか、データを変えずに比較する方法、そして StrConv が McDonald のような名前を台無しにする理由を解説します。

VBA の Str 関数には 2 つの罠が潜んでいます — 正の数値の前に付く先頭スペースと、ロケールを無視する小数点です。Str が役立つ場面、なぜ CStr の方が安全な既定なのか、そして数値を正しく文字列に変換する方法を解説します。

ThisWorkbookはコードが住んでいるファイル、ActiveWorkbookは今いちばん手前のファイル。この2つを混同することが、VBAマクロが別のブックを読み書き・保存してしまう最大の原因です。

ワークシートには3つの「取っ手」(タブ名・コードネーム・インデックス)があり、うち2つはユーザーがリネームや並べ替えをすると壊れます。どの参照を使うべきか、なぜSheetsはWorksheetsと違うのかを解説します。

ActiveSheet・ActiveCell・Selectionはマクロの裏で変わるグローバルな可変状態です。限定なしのRangeがなぜ黙って別シートに書き込むのか、そしてそれを直すたった一つの習慣を解説します。

VBA には VLOOKUP の呼び方が 2 つあり、片方は値がないと落ち、もう片方は検査できるエラーを返します。考え方の軸、VLOOKUP を O(n²) の罠に変えるループ、そして Dictionary による対処。Excel 365 / 2021 / 2019 で検証済み。

マクロ記録は Select・Copy・Paste と書きます — クリップボードを通る 3 ステップで、遅く脆い。考え方の軸、なぜ .Value = .Value が勝つか、そして PasteSpecial がまだ正しい場面。Excel 365 / 2021 / 2019 で検証済み。

Excel VBA から Outlook メールを送るのは、遅延バインディングと「セキュリティの壁」、そして Microsoft が解体中の橋です。考え方の軸、CreateObject と参照設定、.Display と .Send、そして New Outlook が消すもの。Excel 365 / 2021 / 2019 で検証済み。

VBA の Trim は両端だけを削り、内側の空白には触れません。さらに、Web や PDF からの貼り付けで紛れ込む非改行スペース Chr(160) も無視します。考え方の軸、使うべき正規化関数 1 つ、そしてどの関数がどの場面で勝つか。Excel 365 / 2021 / 2019 で検証済み。

VBA の Format は値を「表示用の文字列」に変えるだけで、値そのものは変えません。考え方の軸、押さえるべき書式コード、m は月という落とし穴、そして Format() をセルに書き込むと SUM や並べ替えが静かに壊れる理由。Excel 365 / 2021 / 2019 で検証済み。

CStr・CDate・Val は値の「見た目」ではなく「型そのもの」を変えます。考え方の軸、01/02 を片方の PC では 1 月 2 日、もう片方では 2 月 1 日と読ませてしまう地域設定の罠、Val がコンマ小数を静かに切り捨てる理由、そして DateSerial による対処。Excel 365 / 2021 / 2019 で検証済み。

VBA の Split を「連結の逆操作」として理解する。区切り文字で切り分けると 0 始まりの配列になる。最初の要素を取りこぼす off-by-one、CSV パーサーではない理由、使いどころを解説。Excel 365 / 2021 / 2019 で検証済み。

VBA の Mid・Left・Right を「位置で文字列を切る」道具として理解する。1 始まりゆえの off-by-one、Mid がステートメントでもある事実、位置指定が誤りになる場面を解説。Excel 365 / 2021 / 2019 で検証済み。

VBA の Replace を「コードで実行する Ctrl+H」として理解する。一度の呼び出しで全一致を置換。既定で大文字小文字を区別する理由、文字列を静かに切り詰める start 引数、Range.Replace が勝る場面を解説。Excel 365 / 2021 / 2019 で検証済み。

VBA に try/catch はありません。堅牢なエラー処理は一つの構造です。ハンドラーを武装し、処理を実行し、すべての出口を一つの後始末ポイントに通してから抜ける。Resume のルール、エラーの再送出、そしてファイルを救う後始末ポイントを解説。Excel 365 / 2021 / 2019 で検証。

VBA の On Error は、実行時エラーの後にマクロをどこへ向かわせるかを決めるスイッチです。Resume Next・GoTo によるハンドラー・GoTo 0 の違い、そしてバグを隠さないためのたった一つのルールを解説。Excel 365 / 2021 / 2019 で検証。

VBA の Err オブジェクトは実行時エラーのブラックボックスです。Err.Number・Err.Description・Err.Source が何が壊れたかを伝え、Err.Raise で自前のエラーを送出できます。自動でクリアされるタイミングと、それが重要な理由を解説。Excel 365 / 2021 / 2019 で検証。

VBA の Sub を仕組みから解説。Sub は名前のついた動作で、あなたのマクロの正体は Sub そのもの。呼び出し時の括弧ルールがコンパイルエラーの大半の原因です。コピーして使える例つき。Excel 365 / 2021 / 2019 で検証。

VBA の Function を解説。値は関数名への代入で返す(Return ではない)、セルに入力できる自作のワークシート関数(UDF)にする方法、そして Sub と Function の使い分け。コピーして使える例つき。Excel 365 / 2021 / 2019 で検証。

VBA の ByRef と ByVal を解説。ByRef は元の変数を渡す(変更が残る)、ByVal はコピーを渡す。VBA が既定で ByRef になり変数を黙って書き換える理由と、それを防ぐ一つの習慣。コピーして使える例つき。Excel 365 / 2021 / 2019 で検証。

VBA MsgBox を「実際の動き」で解説。カッコが必要なのはどんなとき? はい/いいえ/キャンセルの戻り値の読み方、そして MsgBox がデバッガではなく「判断のゲート」である理由まで。コピペで動く例、Excel 365 / 2021 / 2019 で動作確認済み。

VBA の InputBox は1つではなく2つあります。単純な InputBox で足りる場面、Type を付けた Application.InputBox が勝つ場面、そして両方を静かに壊す「キャンセルの落とし穴」まで。コピペで動く例、Excel 365 / 2021 / 2019 で動作確認済み。

VBA UserForm を正しく作る方法。イベント駆動の考え方、.Show のあとコードが「消える」理由、そして入力した値を読めるかどうかを決める Unload と Hide のルールまで。コピペで動くイベントコード、Excel 365 / 2021 / 2019 で動作確認済み。

Excel VBA の Range オブジェクトを徹底解説:Range と Cells の違い、.Value と .Value2、End や CurrentRegion による動的範囲、そして .Select を使うべきでない理由。コピペで使える8例。Excel 365・2021・2019 で検証済み。

Excel VBA の配列を徹底解説:静的配列と動的配列の宣言、ReDim Preserve、UBound/LBound、そしてマクロを100倍速くする決定的なコツ——範囲を配列に読み込む方法。コピペで使える7例。Excel 365・2021・2019 で検証済み。

Excel VBA の Dictionary を徹底解説:事前バインディングと実行時バインディング、Add と Exists、そして実務で本当に使う2つの用途——一意のリスト作成と集計/グループ化。コピペで使える6例。Excel 365・2021・2019 で検証済み。

VBAのIf Then Elseは「独立した問いのチェックリスト」。これを静かに壊す落とし穴(VBAは短絡評価をしない)、1行とブロックの使い分け、そしてSelect Caseへ切り替える場面を、コピペ実例とともに。Excel 365 / 2021 / 2019で動作確認済み。

VBAのWhileループは「必ず終わる」という約束であり、それを守るのはあなた。すべてのWhileループに必要な3つの部分、なぜDo WhileがWhile...Wendより良いのか、そして二度とExcelを固めない方法を、コピペ実例とともに。Excel 365 / 2021 / 2019で動作確認済み。

VBAのSelect Caseは「振り分け」であって、チェックリストではない。あらゆるSelect Caseのバグを説明するたった1つのルール、ElseIfではなくこれを使う場面、そしてSelect Case Trueの裏技を、コピペ実例とともに。Excel 365 / 2021 / 2019で動作確認済み。