VBA の技術(基礎から応用まで)

 こばとが蓄えてきた膨大な数の VBA コードを順次公開します。
 VBA にはそれほど詳しくないけど、Excel をもう少し便利に使いたいと思う方から VBA で本格的なソフトを開発したいと願う人まで幅広く対応する記事を載せていきます。コードをそのままちゃっかりコピーして使うもよし、各記事の解説をじっくり読んで「 VBA の何たるか(?)」を学んで精進するもよし、ですよ。

 サイトを運営している人におすすめのマクロはこちらです!
 ≫ Excel の表を HTML テーブルに変換します
 

記事を選んでくださいな♪

VBA の基本

 Debug.Print
 ユーザー定義定数と消費税の計算 引数付きでマクロを呼び出します

セルの操作

 セルの選択 セルの値を取得/セルに値を入力

日付と時刻

 現在の日付と時刻の取得 曜日の取得 日付を加えます 処理速度の計測

セルの操作

 セル範囲の座標とサイズの取得
 シートの1行目まで戻ります データの最終行を選択します
 セルの背景色を設定します 条件を満たすセルに色を塗ります
 簡単アニメーション 見出しの書式を整えます ブロック崩し?

配列処理

 静的配列

文字列の操作

 同じ文字を繰り返します
 大文字と小文字の変換 指定した方法で文字列を変換
 文字列の取り出し 文字数の取得
 氏名から名字と名前を取り出します
 住所から都道府県名を取り出します
 特定の文字で囲まれた言葉を抜き出します
 複数の特定文字を全て消去します
 指定した文字の左右を取り出すマクロ

ユーザー定義関数

 引数の省略 可変引数

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

 矢印を引きます

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

 固定化された乱数を出力します(ユーザー定義 FRAND)
 抽選マクロ(1列に並んだデータから無作為にデータを抜き出します)
 複数データを重複せずにランダムに抜き出します
 無作為に選んだ文字を出力します(ユーザー定義 ALPHABET)
 2 次元の表からランダムに1つ抜き出します(ユーザー定義 XYSELECT)
 先頭行、末尾行、列を指定して無作為抽出
 住所の番地をランダムに出力します
 

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 に関する知識は一切なくてもワークシート上で使うことができるようになります。思いつく限りの関数を作っておきますので、「お、これは!?」と目に留まる関数があればぜひお持ち帰りくださいな。

スポンサードリンク
末尾大型広告
末尾大型広告