和風スパゲティのレシピ

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

プロシージャ分割

VBAの悩みはVBAerに聞け(Zoom配信)に登壇いたします - ExcelVBA

本日20:00~VBAの悩みはVBAerに聞け(Zoom配信)に登壇いたします。他者がコーディングする様をリアルタイムに見、その場で解説を聞くためのイベントです。内容は、初級者向けに、オートフィルターの基本コードを解説します。

関数(プロシージャ)分割は思ってるより簡単です

関数分割が難しいのは「なにを関数にすればいいのかわからない」という、目的の理解が最大の悩みと感じます。この目的を「処理のまとまりに名前をつけられること」と捉えて、母国語の力を借りてコードを読めば、関数化の本質がつかめると思います。

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

関数に引数を渡す際の渡し方である、ByVal(値渡し)とByRef(参照渡し)の違いを説明します。ざっくり説明すると、関数に値(引数)を渡すときに、「変数に書いてある情報だけを渡すのが値渡し(ByVal)」、変数をそのまま渡すのが参照渡し(ByRef)です。

よく書くコードは汎用関数に - 作り方と使い方

どんなマクロでも使えるような関数のことを汎用関数と呼びます。よく書く処理は汎用関数にして持っておきましょう。同じコードを何回も書かなくて良くなるだけでなく、コードが読みやすくなり、重要な処理に集中できるようになります。

ParamArrayを別関数のParamArrayに渡す方法

引数の数を可変にするParamArrayキーワードで受け取った引数を、別の関数のParamArrayに渡す方法を解説します。といいつつ私の調べた限り完全解答はなく、どうしても呼出元関数をいじる必要が出るようです。ひとつのヒントとなれば幸いです。

引数を好きな個数渡せる関数を作る-ParamArrayキーワード-

Sub、Functionなどを作成するとき、任意の数の引数を渡す方法を解説します。ParamArray 引数名() という引数を作ると、呼び出す側では複数の引数として渡すことができ、プロシージャ内で実際に使うときは、配列として扱うことができます。

関数の引数を省略可能にする - Optionalキーワード

Sub、Functionなどの引数を省略可能にするOptionalの使い方を解説します。「引数名 As データ型」という普段の宣言部分に、先頭にOptionalをつけると、その引数は省略可能になり、後ろに「= ○○」をつけると省略時の値を設定することができます

Property Let と Property Set の違い

プロシージャの種類である、Property LetとProperty Setの違いを解説します。両者とも、プロパティの取得・設定を対となる2関数で行う仕組みのうちの、「値の設定」を担うプロシージャですが、対象とするプロパティがオブジェクトかどうかが異なります。

Function と Property Get の違い

プロシージャの種類である、FunctionとProperty Getの違いを解説します。どちらも、任意の数の引数を受け取り、1つの値を返します。Propertyの本来の目的である、同じ名前のProperty Let/Setプロシージャを用意できる点が、最も大きな違いです。

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

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