VBA – ワークシート関数の使い方(全リスト)
In this Article
VBAで関数を使用する方法はたくさんあります。 VBAには多くの組み込み関数が搭載されており、独自の関数(UDF)を作成することもできます。しかし、Application.WorksheetFunctionを使えば、Excelのほとんどの関数をVBAで利用することも可能です。
VBAでワークシート関数を使用する方法
VBAでExcelの関数にアクセスするには、呼び出したい関数の前にApplication.WorksheetFunctionを追加します。以下の例では、ExcelのMax関数を呼び出しています。
Dim maxvalue as long
maxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value)
関数の構文は同じですが、関数の引数は他のVBA関数と同じように入力します。 Max関数の構文は、入力時に表示されることに注意してください。(VBAの関数と同様です。)
WorksheetFunctionメソッド
WorksheetFunction は Application オブジェクトのメソッドです。 これは、Excelの標準的なワークシート関数のほとんど(すべてではありません)にアクセスすることを可能にします。一般に、対応するVBAバージョンを持つワークシート関数にアクセスすることはありません。 最も一般的なワークシート関数の一覧は以下のとおりです。
Application.WorksheetFunctionとApplicationの比較
これらの関数にアクセスする方法は、実際には2つあります。 Application.WorksheetFunction(上図参照)を使う場合は以下のようになります。
maxvalue = Application.WorksheetFunction.Max(Range("a1").Value、Range("a2").Value)
または、WorksheetFunctionを省略することもできます。
maxvalue = Application.Max(Range("a1").Value、Range("a2").Value)
残念ながら、WorksheetFunctionを省略すると、構文を表示するIntellisenseがなくなります。(上の画像参照。)しかし、1つ大きな利点が考えられます。エラー処理です。
Applicationを使用し、関数がエラーを発生させた場合、エラー値が返されます。 WorksheetFunctionメソッドを使用した場合、VBAはランタイムエラーを投げます。 もちろん、VBAのエラーを処理することもできますが、通常は、最初の段階でエラーを回避する方がよいでしょう。 違いを確認するために例を見てみましょう。
Vlookup WorksheetFunctionのエラー処理
一致しないVlookupを実行してみましょう。通常はその場合、Vlookup関数はエラーを返します。
まず、WorksheetFunctionメソッドを使用した場合を見てみましょう。VBAがどのようにエラーを投げているかに注目してください。
次に、WorksheetFunctionを省略してみます。 エラーがスローされない代わりに、’value’関数にVlookupのエラー値が含まれていることに注意してください。
VBAワークシート関数のリスト
VBAのWorksheetFunctionsのうち、一般的なものを以下にリストアップしました。 [テーブル id=14 /]
VBAのコーディングが簡単に
VBAのコードをオンラインで検索するのはもうやめましょう。AutoMacro – A VBA Code Builderを使えば、初心者が最小限のコーディング知識でゼロから手順をコーディングできるだけでなく、ベテランのユーザーが時間を節約するためにも役立つ多くの機能を備えています! もっと詳しく