【環境】 ・Windows7 Pro 32bit ・VS.net2010(VB.NET) ・Excel2013 ・.net Framework 4.0 お世話になります。 VB.NETを使用して、あるCSVファイルを読み込み、 その読み込んだ内容を既存Excelファイルに対して書き込みを行うプログラムを書いております。 書き込む際、Excelシート内の特定の1つの列をキー項目としておりまして、 CSVから読み込んだ値とExcel側のキー値を比較して該当した行の特定のセルに 値をセットするような処理を行っています。 1回1回セルを参照して値を取得し、CSVの値と比較するようなことは避けようと思い、 初めはFind関数を使用していました。 しかし、Find関数は処理が遅いという記事をネットで見てから Match関数を使うと良いという内容でしたので、 早速Match関数を使用しようと思い以下の様なコードを書いてみたのですが エラーとなってしまいます。 ※Lookup系の関数も同じエラーになります。 -エラーメッセージ- COMExceptionはハンドルされませんでした。 WorksheetFunction クラスの Match メソッドが失敗しました。 エラーコード:-2146827284 Dim ret As Integer = 0 Dim xlApp As Excel.Application Dim xlSheet As Excel.Sheet Dim xlFunc As Excel.WorksheetFunction = xlApp.WorksheetFunction Dim rTemp As Excel.Range rTemp = xlSheet.Range("A1:A10") ret = xlFunc.Match("12345", rTemp , 0) '←ここでエラー ※上記コードは一部を抜粋してきたものです。 ただ、Count関数やMax関数、Min関数などは問題なく使用出来ましたので xlFuncが機能していない訳ではなさそうです。 Matchの書き方に問題があるのでしょうか。 また、そもそも使用出来ないものなのでしょうか。 何かお分かりになる方、もしいらっしゃいましたらご教示の程お願い致します。
↧