マクロ1★Functionマクロエクセルのマクロは、sub型とfunction型の2通りあります。sub型は、オートマクロ機能で自動生成することもできますが、function型はすべて自分で書かなければなりません。VBA言語で記述しますが、BASIC言語を習ったことがあれば、ほとんど同じです。*これが、書き終わり2.名前について定義したい関数名は、シート関数で既に使われているものは使えません。定義済みの関数は英語名なので、ローマ字表記の日本語を使うと、殆どダブりません。この名前が、そのまま戻り値の変数名として使われます。従って、構文の中に、必ず関数名を定義する文が入っているはずです。function3.引数について定義したい関数を計算するために必要な変数を、引数といいます。引数が複数ある場合は、,(カンマ)で区切って並べます。上の例のように日本語(全角)は使えません。半角英数のみ使用可能です。function注:本来は、変数はdim分で、種類の定義が必要です。整数(±32000の範囲)や小数点以下も含まれる数とか、あらかじめ数の種類によって定義します。これをしなくとも、自動で定義されます。メモリーを有効に使うためには、細かく定義した方が良いのですが、さほど大きくないマクロでは、自動変数でも構いません。4.定義された関数を使う使い方は、シート関数と同じです。引数には、直接セルの座標を書き込みます。関数の書かれたセルに、計算された返り値が入ります。=hiritu(A4,B4)5.シート関数(組込関数)とfunction関数(マクロ関数)の違いシート関数も、マクロ関数も使い方の上では、全く同じです。マクロが組み込まれているシートでないと、マクロ関数は使えないのに対し、シート関数はすでにワークシートに組み込まれているので、定義無しで使えます。マクロ関数を全てのシートで使いたいときは、これをpersonal.xlsというブック名で保存しておきます。エクセルの起動時に、このファイルがあるとbookに組み込んでくれます。この機能を利用して、エクセルのマクロウイルスは、personal.xlsの名前で保存されています。このため、personal.xlsのファイルはウィルスの温床のようになってしまっています。function文の中では、VBAの関数を使います。これが、組込関数と同じ名前であったりするので混乱しますが、あくまで、別物です。構文が異なるので注意して下さい。