和風スパゲティのレシピ

日本語でコーディングするExcelVBA

サンプルコード

帳票出力マクロを簡単に書くためのクラスを作る

完成品の全体が見たい!という方のための、マクロサンプルです。今回のテーマは「データシート⇒帳票を出力」です。利便性をテーマに作成しましたので、クラスの参考にするなり、中身を見ずにコピペして使うなり、お好きな方法でご活用ください。

帳票出力マクロをクラスを使って書く

完成品の全体が見たい!という方のための、完成品マクロのサンプルコードです。今回のテーマは「データシート⇒帳票を出力」です。クラスの基本的な書き方を使って実装しておりますので、クラスを勉強し始めた方は、参考にしてみてください。

一覧表データから帳票を出力するマクロ

処理ごとの解説ではなく、完成品の全体が見たい!という方のための、完成品マクロのサンプルコードです。今回のテーマは「データシート⇒帳票を出力」です。初級者の方にも扱えるよう、この処理を動かすための最低限の書き方をしております。

帳票出力マクロをプロシージャ分割して書く

完成品の全体が見たい!という方のための、完成品マクロのサンプルコードです。今回のテーマは「データシート⇒帳票を出力」です。関数(プロシージャ)分割を使って、メンテナンス性を意識したコードにしておりますので、参考にしてみてください。

文字列の中にある数字を抽出する関数

指定の文字列から数字だけを抜き出す汎用関数を紹介します。数値をすべて抽出する(123みかん456 ⇒ 123456)タイプと、最初に登場したものを抽出する(1,100円(税10%) ⇒ 1,100)タイプがありますので、目的にあった方をご覧ください。

ダイアログボックスでフォルダを指定・選択する

マクロの実行中に、ダイアログボックスを開き、ユーザーにフォルダを指定・選択してもらうコードを、コピペして使える関数にしたものを紹介します。ユーザーが選択したフォルダの「パス」を返す関数なので、Stringの変数に入れたりして使ってください。

ブックを現在開いているかチェックする関数

ある名前のブックを、現在開いているかを調べる関数を紹介します。Worksbooks(ブック名)の「インデックスが有効範囲にありません」エラーを回避するのによく使います。やり方は簡単で、教本のような「コレクションに対するFor Each」で処理します。

ワークシートが存在するかチェックする関数

ある名前のワークシートが、指定したブックに存在するかを調べる関数を紹介します。Worksheets(シート名)の「インデックスが有効範囲にありません」エラーを回避するのに使います。教本のような「コレクションに対するFor Each」で処理します。

数値を丸数字①②③~に変換する

丸数字(1) = ①、丸数字(24) = ㉔ のように、丸数字(n)を①②…に変換する関数が「丸数字(n) = Chr(Asc("①") + n - 1)」です。お忙しい方は、ソースコードをコピーして、使い方のように呼び出すだけでOKです。コードをしっかり読みたい方は、解説をどうぞ。

4月から3月を連番に変換してコードを整理する

日本企業でエクセルを使う場合「年度」で日付を管理したい場面が非常に多いです。年度を求めたりといった直接的な計算もさることながら、For m = 4 To 12 For m = 1 To 3 とループを分けるのも面倒な処理です。これを簡潔にする関数を作りましょう。

「年度」を使って日付を求めるDateSerial関数

日本企業でエクセルを使う場合、「年度」で日付を管理したい場面が非常に多いです。ですが、残念ながらタイトルの関数はデフォルトでは用意されていません。と言うことで作りましょう。2019.4.1~2020.3.31を、1つの式で表現できるようになりとても便利です。

日付から「年度」を求める関数

日本企業でエクセルを使う場合、「年度」で日付を管理したい場面が非常に多いです。ですが、残念ながらタイトルの関数はデフォルトでは用意されていません。と言うことで作りましょう。2019.4.1~2020.3.31を、1文で表現できるようになりとても便利です。

Colorプロパティの値からRGBの値を求める

ColorプロパティやRGB関数の値、マクロ記録で記録された色は「16764390」のように謎の数字で、見ただけでは何色かわかりません。この値はRGB値と呼びます。このRGB値から、RGBそれぞれの値「230,205,255」を取得する関数を紹介します。

セルの文字色・背景色を列挙型Enumで記憶する

セルの文字色・背景色を設定するとき、色コードやRGBを調べなくてはいけません。初回はしょうがないのですが、何度も使う色は定数などで持っておきたいところです。この色の記憶に列挙型変数(Enum)がとても便利なので、ぜひ活用してみてください。

オートフィルターで数値の条件・区間を抽出する

「10以上」や「15以上20以下」など、オートフィルターによる数値の条件・区間での絞り込みを、コピペして使えるユーティリティ関数にしたものを紹介します。お忙しい方は、ソースコードをコピーして、使い方のように呼び出すだけでOKです。

オートフィルターで抽出中の件数をカウントする

オートフィルターで抽出中のレコードを数えるユーティリティ関数を紹介します。レコードが抽出されているかどうかは、その行が表示されているかを調べればわかるので、「見えている行の数 ⇒ どこか1列の見えているセルの数」を数えることで計算します。

オートフィルターをクリアして全て表示する

オートフィルターのクリア(すべての抽出をリセットして、すべての行を表示する)を、コピペして使えるユーティリティ関数にしたものを紹介します。お忙しい方はソースコードをコピーして、呼び出すだけでOKです。コードをしっかり読みたい方は、解説をどうぞ。

オートフィルターでデータを抽出する

オートフィルターで一番基本となる「データの抽出」を、コピペして使えるユーティリティ関数にしたものを紹介します。オートフィルターはとても便利な機能で、しかも高速なので、使いこなせば読みやすくて速いマクロを作ることができます。