次の方法で共有

WorksheetFunctionでの配列要素数の限界について

Anonymous
2011-08-07T09:04:31+00:00

Excelにて、WorksheetFunction.Matchで配列を検索したいのですが、「型が一致しません」のエラーが発生します。

コードは以下です。

ary = Range("A1:A200000")

i = WorksheetFunction.Match("検索文字", ary, 0)

試行錯誤の結果、65536行を超えると発生するようです。

他の同様の関数(Vlookup等)でも、同じエラーが発生します。

これは、仕様なのでしょうか?

よろしくご教示下さい。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2011-08-07T12:03:06+00:00

>私が知りたいのは、このエラーは、仕様なのかどうか、

少なくとも私はそのようなKBは見つけられませんので、答えられません。

>また、回避方法があるのかと言う事です。

これも答えようがないですが・・・・

Variantではなく、Dim ary(n) とやっても、n=65535まではOKでn=65536とするとアウトですから、

配列に関しては、s.yamaokaさんのご指摘の通りで、2003以前の制限が生きてしまっているようですね。

おっしゃるようにバグくさいといえばバグくさいのですが、MS社がバグと認定してFixが出るまで駄目だと思います。

追記:

海外のQ/Aでも同じケースの議論が行われてますね。駄目ということで、代替手段に議論が移っちゃってますが・・・・

参考まで。

http://goo.gl/DITA5

この回答は役に立ちましたか?

0 件のコメント コメントはありません

5 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2011-08-07T14:22:53+00:00

    ありがとうございます。

    いろいろ検索したのですが、該当の内容が見つからなかったので、

    ここで質問させていただきました。

    海外のQ/Aにあるのですか、私は英語が苦手なので・・・

    代替え手段は、いろいろありますので問題はないのですが、

    私もエクセルを他人に教える立場として、

    純粋に、この問題の裏付けが欲しかったので質問させていただきました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません