VBA:InStr 関数で「実行時エラー '7'」が発生する Hit Counter

対象バージョン : 2000(MDB)
最終更新日 : 1999/09/21 ( オリジナル作成日 : 1999/09/21 )


現 象

新規データベースの並び順序が "日本語 Unicode" で作成された mdb ファイルで、Option Compare Database 指定のあるモジュールでのプロシージャで InStr 関数を実行すると次のエラーが発生

実行時エラー '7':

メモリが不足しています。

 

再現手順

1.メニュー [ツール(T)] - [オプション(O)...] で表示される "オプション" ダイアログで "全般" タブの "新規データベースの並び順序(N)" を "日本語 Unicode" に変更します。

2.メニュー [ツール(T)] - [データベースユーティリティ(D)] - [最適化/修復(C)] を実行。

3.次のプロシージャを実行します。

Public Sub Sample()
Dim intpos As Integer
intpos = InStr("ABCDEFGHI", "I")
End Sub
 

原 因

不明です。

 

対応方法

1.支障がなければ新規データベースの並び順序を "日本語" とする。

2.InStr での検索を、データベースの並び順にこだわらなくでもよければ、第四引数 compare vbBinaryCompare または vbTextCompare を指定する。

intpos = InStr(1, "ABCDEFGHI", "I", vbTextCompare)

3.文字コード・機能コード等、もともとバイナリ比較を行っているのであれば、InStrB 関数に変える。

intpos = InStrB(strInputData, vbCrLf)

目次へ戻る