コラム

VBAでXLookupを使うときは日付を直接検索するな

VBAでXLookupを使う際、日付を検索しようとすると実行時エラー(XLookupプロパティを取得できません)が発生します。

✕:戻り値=WorksheetFunction.WorksheetFunction.XLookup(Date型検索値, 検索範囲, 戻り配列)

CLngを使って検索値を長整数型に変更すればエラーが発生しません。(検索の対象は日付のままで大丈夫です。)

◯:戻り値=WorksheetFunction.WorksheetFunction.XLookup(CLng(Date型検索値), 検索範囲, 戻り配列)

ちなみにVlookupでも同じ問題が発生します。
Vlookupに関しては、次のような記事が見つかりました。

こちらは英語で書かれたものですが、CLngを使った対処方法が記載されていてわかりやすいです。

本記事は「ノンプロ研」の「VBA研究会」での研究結果に基づくものです。

コメント

タイトルとURLをコピーしました