当サイトではアフィリエイトプログラムを利用して商品を紹介しています。

VBAプログラミング辞典

VBAリファレンス

VBAに関する記事の案内板です。VBAの基礎から応用まで幅広く扱っていますので、ぜひ参考にしてください。

VBAプログラミングの基本

論理演算子 (And, Or, Not, Xor, Imp, Eqv) Debug.Print
引数付きでマクロを呼び出します
罫線を引きます

変数と配列処理

変数の宣言 変数のデータ型を調べます
ブール型変数 整数型/長整数型変数 単精度/倍精度浮動小数点数型変数
通貨型変数 日付型変数 文字列型変数 オブジェクト型変数
Do Until Loop/Do Loop Until による繰り返し処理
Do While Loop/Do Loop While による繰り返し処理
静的配列 動的配列
引数に配列を渡します
配列を昇順/降順に並べ替えます
指定した値を文字列型に変換します
ユーザー定義型変数 InputBoxメソッド/InputBox関数

ブックとシートの操作

ワークシートの追加/削除

セルの操作

セルの選択 セルの値を取得/セルに値を入力 セルの相対参照
セル範囲の行と列を数えます 行や列の表示/非表示を切り替えます
セル範囲の座標とサイズの取得 データの最終行を選択します
セルの背景色を設定します 簡単アニメーション
見出しの書式を整えます ブロック崩し?

日付と時刻

現在の日付と時刻の取得 曜日の取得 日付を加えます 処理速度の計測
指定時刻にマクロを起動します

文字列の操作

MsgBox 関数でメッセージを表示します
文字列同士、文字列と数値を結合します
Join関数を使って配列要素を結合します
改行
同じ文字を繰り返します
Split関数で文字列を区切り文字で分割します
大文字と小文字の変換
指定した方法で文字列を変換
Val関数で文字列から数値を取り出します
文字列を検索して別の文字列に置き換えます
Text モードで文字列を比較します
文字コードと文字列の変換
左側から文字を切り出す(Left)
右側から文字を切り出す(Right)
指定範囲の文字を切り出す(Mid)
文字数の取得
端のスペースを消します 氏名から名字と名前を取り出します
住所から都道府県名を取り出します
特定の文字で囲まれた言葉を抜き出します
無作為なパスワードを返すユーザー定義関数
文章を1文字ずつバラバラにして配列に入れます

ユーザー定義関数

オリジナル関数の作りかた 可変引数

オートシェイプ(図形)の操作

矢印を引きます 円を作ってジグザグアニメーション♪ 図形を回転させます
図形を拡大・縮小させます

無作為選択に関するマクロ

抽選マクロ(1列に並んだデータから無作為にデータを抜き出します)
複数データを重複せずにランダムに抜き出します
住所の番地をランダムに出力します

なんとなく楽しいマクロ♪

Quiz プログラムを作ってみたよ!

サイトを運営している人におすすめマクロ

≫ Excel の表を HTML テーブルに変換します

Option Base 1はモジュールに1つで十分です

このサイトに載っている VBA マクロには、Sub の前に Option Base 1 という宣言文がついていることがあります。これは配列のインデックス番号の下限値を(通常なら 0 のところを)1 で始まるようにする宣言です。これはモジュールの1番上に1つだけ書いておけば十分ですから、1つの標準モジュールにいくつもサブルーチンをコピーするときには余分な Option Base 1 は消しておいてください。

目的ごとに複数の選択肢を提供します

Excel である種の操作をオートマティックに処理させようとしたとき、ほとんどのケースで複数の解決策があります。大まかに分けると …
 
① ワークシート関数で処理する
② VBA のマクロで処理する
 
の2択になりますが、細かな点まで突き詰めると、それぞれの場合において、さらにいくつかの選択肢が生じます。このサイトでは、ユーザーさんの好みやスキルに応じて自由に選択できるように、可能な限り複数の解決策を提供していく予定です。

Excel関数とVBAコードを色分けします

Excel 関数と VBA 関数はよく似た表記(Rand と Rnd など)が多く、混乱しやすいです。そこで当サイトでは、ぱっと見てそれが Excel 関数 なのか VBA コードなのか分かるように、それぞれに色を割り当てて網掛けしておきます:

Excel 関数
VBA コード
ユーザー定義関数単体、あるいはExcel 関数とユーザー定義関数の組合せ

ユーザー定義関数を数多く提供します

VBA には Function Macro(ユーザー定義関数)という大変便利な機能が用意されています。標準モジュールに Function Macro を記述しておけば、 ワークシート上で「=fct()」というように、あたかも Excel 関数のような形で呼び出すことができます。Excel を使いこなしている人は Excel 関数を自由自在に組み合わせてお仕事の効率を追及なさっていると思いますが、この Function Macro を新たな材料に加えることで、その組み合わせの種類を次々と増やしていくことができます。さらなる高い次元で Excel を使うなら、このユーザー定義関数を使わない手はありません。当サイトに乗っているコードをコピーすれば、VBA に関する知識は一切なくてもワークシート上で使うことができるようになります。思いつく限りの関数を作っておきますので、「お、これは!?」と目に留まる関数があればぜひお持ち帰りくださいな。

【小説】VBAの基礎として学ぶべきことを真剣に考えます

【AI連載小説】生田目次郎のエクセル奮闘記(14)
 
ある晩、次郎は自宅でVBAの基礎をしっかりと身につけるために、学ぶべきことを整理する作業に取り組んでいました。彼はVBAエディタを開き、自分の目標を整理するために独り言を漏らしながら手帳に書き込んでいました。
「まずは変数か。これがあるからVBAは強力になるんだよな」
彼はエクセルのテーブルを参照しながら、変数の宣言や利用の仕方を整理していきます。
「次に条件分岐か。If…Then…Else って感じか。条件に応じて処理を分けるのは必須だな」

続いて、条件分岐に関するコードの例を作成し、その挙動を確認しながら理解を深めます。
「さらに、ループも大事だな。同じ処理を繰り返す時に使う For…Next や Do While…Loop」
手帳にループ処理の具体的な例を書き込みながら、実際にエディタ上でコードを書いて試すことで、理解を深めていきます。
「関数やサブルーチンも大切。再利用性が高まるから、効率的なコーディングができる」

次郎は自分の目標を整理する中で、VBAの基礎的な概念や機能について確認し、実践的なコーディングにも取り組んでいました。
「最後に、エラーハンドリングも忘れちゃいけない。予期せぬエラーに備えて、安全なコードを書くために必要だ」
彼は手帳にエラーハンドリングに関する注意書きを追加し、その中でエラーメッセージの取り扱い方や例外処理についても整理していきます。

次郎はVBAの学習を深めるために、専門的なサイトを探していました。彼はオンラインで「Excel VBA 表計算とプログラミング学習サイト」というサイトを見つけ、その評判が良いことを知りました。
「このサイト、Excel VBAの学習に良さそうだな。口コミもいいし、プログラミング初心者向けに分かりやすく解説されているみたいだ」
彼は興味津々でサイトを開き、基礎から応用まで幅広いテーマが扱われていることに喜びを感じました。サイト内では、変数や条件分岐、ループなどの基本的なトピックから、関数の作成、オブジェクト指向プログラミングの応用まで様々な内容が丁寧に解説されていました。
「ここにはプロのエンジニアが書いた実用的なコードもあるみたいだ。これなら実践的なスキルも身につけやすいな」
彼はサイトの中で例題を見つけ、実際にエディタ上でコードを書いて試していくことに決めました。サイトの中で用意されたクイズや演習問題にも挑戦し、理解を深めていく姿勢を持ちました。
「これで自分のスキルも向上するだろうし、仕事でも役立てられるだろう。」
彼は学習サイトをブックマークし、日々の学習の一環として利用することを決意しました。この新しい知識を活かして、仕事においてより効率的でスマートなプログラミングができるようになることを期待していました。