Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


73148 / 76732 ←次へ | 前へ→

【8067】Re:6つの数値から最大のものを探すには
回答  Asaki  - 03/9/29(月) 11:16 -

引用なし
パスワード
   ▼INA さん:

>WorksheetFunction が無くても使えるのですね!
> これは、WorksheetFunction が、省略可能ということなのでしょうか?

例えば、A1:B3 のセルに以下のようなデータがあるとして、VlookupをVBAから使用します。
  A  B
1 A あ
2 B い
3 C う

検索する値をD1セルに入力して、次の2つのSubの動作を確認してみてください。
Sub samp1()
  Dim ret     As Variant
  ret = Application.VLookup(Range("D1").Value, Range("A1:B3"), 2, 0)
  MsgBox TypeName(ret)
End Sub

Sub samp2()
  Dim ret     As Variant
  ret = Application.WorksheetFunction.VLookup(Range("D1").Value, Range("A1:B3"), 2, 0)
  MsgBox TypeName(ret)
End Sub

表内に合致するデータがないときに動作に差があります。
要するに、WorksheetFunction をわざと省略することにより、エラーがハンドリングできる
ということのようです。
VLookupだけでなく、他にもいくつか動作の違う関数があるそうです。

また、WorksheetFunction を書かないほうが、実行速度が速い、という噂も聞いたことがあります。
(ガセ、または、条件(バージョンなど)によるのかもしれません)

以上、いささか怪しいところもありますが、私が知っている限り、
VBAからワークシート関数を利用する際に、WorksheetFunction の有無で、
上記のような違いがあるようです。

#因みに、私は多くの場合、WorksheetFunction を書かないことが多いです。
(今回も、単にその習慣で略してました)

0 hits

【8061】6つの数値から最大のものを探すには アホレンジャー 03/9/29(月) 9:22 質問
【8063】Re:6つの数値から最大のものを探すには INA 03/9/29(月) 10:05 回答
【8065】Re:6つの数値から最大のものを探すには Asaki 03/9/29(月) 10:08 発言
【8066】Re:6つの数値から最大のものを探すには INA 03/9/29(月) 10:13 回答
【8067】Re:6つの数値から最大のものを探すには Asaki 03/9/29(月) 11:16 回答
【8068】Re:6つの数値から最大のものを探すには INA 03/9/29(月) 11:24 回答
【8064】Re:6つの数値から最大のものを探すには Asaki 03/9/29(月) 10:07 回答
【8080】Re:6つの数値から最大のものを探すには アホレンジャー 03/9/29(月) 17:20 お礼

73148 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free