VBA

スポンサーリンク
VBA

Excel VBA | IsMissing と Optional の細かい制約(Variant の場合)

要点まとめVBAで Optional と IsMissing を組み合わせる場合、Variant型の引数だけが特別扱いされます。IsMissing は「その引数が省略されたかどうか」を判定する唯一の方法ですが、Variant以外の型では使え...
VBA

Excel VBA | ByVal/ByRef のメモリやパフォーマンス面での違い

結論VBAにおける ByVal と ByRef の違いは「コピーを渡すか」「元の変数の参照を渡すか」という点にあり、メモリやパフォーマンス面では データのサイズや型によって影響が変わる。小さな値なら差はほぼ無視できるが、大きなデータや文字列...
VBA

Excel VBA | ByVal と ByRef(値渡し/参照渡し)

最初に押さえるポイントは「渡した値が呼び出し元で変わるかどうか」。ByVal(値渡し):中で変えても呼び出し元は変わらない。ByRef(参照渡し):中で変えたら呼び出し元も変わる。直感イメージByVal: コピーを渡す。コピーをいじっても原...
VBA

Excel VBA | 引数を省略可能にする Optional の使い方

「Optional」は 引数を省略できるようにする仕組み です。普通の引数は必ず渡さないとエラーになりますが、Optionalを付けると「渡してもいいし、渡さなくてもいい」になります。基本の書き方Sub Greet(ByVal name A...
VBA

Excel VBA | 戻り値のある Function(関数)プロシージャの書き方

Excel VBAの function(関数)プロシージャの基本最初に押さえるポイントは「Subは命令を実行するもの」「Functionは“計算して値を返す”もの」。Functionは“入力→処理→出力(戻り値)”の流れで考えると理解しやす...
VBA

Excel VBA | 実務用 VBA コード集(テンプレ付き)

業務でよく使う 「安全に動く」「再利用できる」テンプレートコード集 をまとめました。ログ出力やエラー処理を組み込んでいるので、実務ですぐ活用できます。1. 基本構造(ログ+エラー処理付き)Option Explicit'=== ログ出力 =...
VBA

Excel VBA | 「ログ出力」と「エラー処理」を組み込んだExcel VBAマクロのテンプレート

初心者でも実務で使いやすいように、「ログ出力」と「エラー処理」を組み込んだExcel VBAマクロのテンプレートを紹介します。これをベースにすれば、業務用マクロを安全に運用できます。実務マクロテンプレート(ログ・エラー処理付き)Option...
VBA

Excel VBA | 命名規則チェックリスト(VBA/一般プロジェクト向け)

プロジェクト全体で命名を統一するためのチェックリストです。初心者でも使いやすいように整理しました。モジュール名 接頭辞を付ける(例:mod、cls、frm) 役割が分かる名前(例:modCalc、clsCustomer、frmLogin) ...
VBA

Excel VBA | プロジェクト全体の命名規則(接頭辞や名前空間の統一)

プログラムが大きくなると、モジュール・関数・変数の名前がバラバラだと管理が難しくなります。そこで「命名規則」をプロジェクト全体で統一することが重要です。初心者向けに整理してみます。命名規則を統一する目的可読性向上:誰が見ても役割が分かる保守...
VBA

Excel VBA | Module設計・命名規則まとめ

プログラミング初心者向けに、VBAや一般的なプログラムにおける「モジュール設計」と「命名規則」を整理してまとめます。モジュール設計の基本モジュールは「処理をまとめる箱」です。大きなプログラムを整理するために使います。1. モジュールの役割標...
VBA

Excel VBA | ByValとByRefの違い(値渡しと参照渡し)

少し抽象的に聞こえる言葉だけど、実際は「中身のコピーを渡すのか」「そのものを渡すのか」という違いです。VBAでは引数の前に ByVal/ByRef を付けて制御します。基本の考え方ByVal(値渡し):引数の「値のコピー」を渡します。中で値...
VBA

Excel VBA | 「Subプロシージャ」と「Functionプロシージャ」の違い

初心者向けに 「Subプロシージャ」と「Functionプロシージャ」の違い、そして引数・戻り値の使い方を丁寧に解説します。SubプロシージャとFunctionプロシージャの違い項目SubプロシージャFunctionプロシージャ書き方Sub...
VBA

Excel VBA | 在庫管理や売上処理でよくあるバグ

了解です!ここでは 在庫管理や売上処理でよくあるバグ を例に挙げて、修正版コードと解説をまとめます。実務でありがちな「間違い探し」形式です。よくあるバグと修正例1. 在庫更新で商品コードが見つからないバグ例Sub 在庫更新_Bug() Di...
VBA

Excel VBA | VBAの基本構文・ループ・条件分岐・変数宣言 などを題材に「バグ修正(間違い探し)」形式の練習問題

「バグ修正(間違い探し)」形式の練習問題を用意しました。初心者がつまずきやすい VBAの基本構文・ループ・条件分岐・変数宣言 などを題材にしています。各問題は「間違ったコード例」を提示するので、どこがバグかを探して修正してください。1. 変...
VBA

Excel VBA | 中級・上級 VBA 総合セット(100問)

カテゴリ一覧制御構文・ロジック(10問)配列・コレクション・Dictionary(10問)Range・セル操作(10問)シート・ブック操作(10問)イベント処理(10問)ユーザーフォーム・UI(10問)ファイル入出力(10問)エラー処理・デ...
VBA

Excel VBA | Range(“A1”).CurrentRegion をそのまま配列にする高速テク

Excel VBA で 表全体を一気に配列に読み込むには、Range("A1").CurrentRegion.Value を使うのが定番です。これにより「A1 を含む連続したセル範囲(表全体)」を 二次元配列 として取得できます。基本コード...
VBA

Excel VBA | 多列の配列処理(3次元配列の考え方)

Excel VBA で Range.Value を読み込むと 2次元配列(行 × 列) が得られます。「3次元配列」は Excel のセル範囲から直接は得られませんが、複数シートや複数テーブルをまとめて扱うときに「シート × 行 × 列」と...
VBA

Excel VBA | 複数列を配列で扱う例(2次元配列処理)

Excel VBA で Range.Value を配列に読み込むと、二次元配列(行 × 列)として扱えます。これを使うと「複数列のデータをまとめて処理 → 一括で書き戻す」ことができます。基本の考え方Range("B2:D10").Valu...
VBA

Excel VBA | 配列を Dictionary に変換して高速検索する例

Excel VBA では、配列をそのままループして検索すると 線形探索(1件ずつチェック) になるため遅くなります。そこで Scripting.Dictionary を使うと、キーで即座に検索できるので高速化できます。基本の流れ配列を用意す...
VBA

Excel VBA | For Each の代わりに For i を使う理由

「For Each…Next」は すべての要素を順番に処理する のに便利ですが、処理する対象を選びたいときや インデックス番号を使いたいときには「For i…Next」が有利です。For i を使うメリットインデックス番号を使える→ 偶数行...
VBA

Excel VBA | 配列高速化と For Each の使い分けまとめ

Excel VBA で繰り返し処理をするとき、「For Each…Next」 と 「配列に読み込んで一括処理」 のどちらを選ぶかで速度や書きやすさが変わります。実務ではこの使い分けが重要です。For Each…Next の特徴メリットコレク...
VBA

Excel VBA | 実務で役立つ「配列に読み込んで一度に書き戻す」高速化テクニック

Excel VBA でセルを 1つずつ処理すると遅い のはよくある悩みです。原因は「セルへのアクセスが都度 Excel に問い合わせる」ため。これを改善する方法が 配列にまとめて読み込み → VBA内で処理 → 一括で書き戻す という流れで...
VBA

Excel VBA | 上級問題セット

ここでは VBA の上級者向けとして、以下の分野をすべて網羅した問題セットを紹介します。クラスモジュールDictionaryJSON(Parse/Serialize)Web API 呼び出し(WinHTTP)ADO(DBアクセス)標準モジュ...
VBA

Excel VBA | 中級者向け VBA 練習問題(配列 / 文字列 / ファイル処理)

ここからは 中級者向けの VBA 練習問題(配列・文字列処理・ファイル処理)を合計 20問 用意。すべて 模範解答コードつき なので、すぐ試せます。配列・Split・Join・Dir・FileSystemObject・正規表現など、実務でよ...
VBA

Excel VBA | フィールド定義表から自動でチェックを組み立てる仕組み(メタデータ駆動)

毎回コードに「必須」「数値」「日付」などのチェックを書き込むのは大変です。そこで 「フィールド定義表」=各列のルールを表にまとめておき、マクロはその定義を読み取って自動的にチェックを実行する 仕組みを作ると、柔軟でメンテしやすくなります。フ...
VBA

Excel VBA | 実務によく使う関数一覧

実務でよく使うVBA関数は「文字列操作」「日付・時刻」「数値処理」「データ判定」「ファイル操作」などに分類されます。特に Len、Left、Mid、InStr、Format、DateDiff、IsEmpty、Dir などは頻出です。VBA関...
VBA

Excel VBA | 複数マスタを同時にJOINして結合するプロ用高速マクロ

ここからは 「複数マスタ(3〜5マスタ)を同時にJOINして結合するプロ用高速マクロ」 を作ります。ポイントは 配列 × Dictionary × 自動範囲 × 一括書き戻し をフル活用し、数十万行でも瞬時に結合できることです。概要メイン表...
VBA

Excel VBA | SQLite FTSでAVG(score)やMIN(score)も組み合わせて検索結果の関連度分布を分析する応用例

SQLiteの FTS(Full-Text Search) では、検索結果に関連度スコア(rank)を付与できます。これに COUNT(*)(総件数)、MAX(rank)(最大スコア)、MIN(rank)(最小スコア)、AVG(rank)(...
VBA

Excel VBA | SQLite FTSでページング検索+COUNT+MAX(score)を組み合わせて上位候補の関連度を表示する応用例

SQLiteの FTS(Full-Text Search) では、検索結果に関連度スコア(rank)を付与できます。これに COUNT(*)(総件数)と MAX(rank)(最大スコア)を組み合わせることで、検索結果の全体像と上位候補の関連...
VBA

Excel VBA | SQLite FTSでページング検索+COUNTを組み合わせて総件数を取得する応用例

SQLiteの FTS(Full-Text Search) では、LIMIT+OFFSET を使ってページング検索ができます。さらに COUNT(*) を組み合わせることで、検索結果の総件数を取得し「全体の何件中、今何ページ目か」を表示でき...
スポンサーリンク