型が一致しません (エラー 13)

Visual Basic では、多くの値を変換したり強制的に指定したりすることにより、以前のバージョンでは不可能だったデータ型の代入が実現されています。

それでも、このエラーが発生する場合があります。このエラーの原因と解決策を以下に示します。

  • 原因:変数またはプロパティの型が正しくない。 たとえば、整数値を必要とする変数は、文字列全体が整数として認識されない限り、文字列値を受け取ることはできません。

解決策: 代入は、互換性のあるデータ型の間で行うようにします。 たとえば、Integer は常に Long に代入でき、Single は常に Double に代入できます。Variant には、常に任意の型 (ユーザー定義型を除く) を代入できます。

  • 原因: 1 つのプロパティまたは値が必要なプロシージャにオブジェクトが渡された。

解決策: 適切なプロパティを 1 つ渡すか、そのオブジェクトに適したメソッドを呼び出します。

解決策: 表示できる式を指定します。

  • 原因: 従来のエラー処理を、Error サブタイプ (10、vbError) を持つ Variant 値と組み合わせて使用しようとした。以下に例を示します。

      Error CVErr(n) 
    

解決策: エラーを再生成するには、Visual Basic の組み込みエラーまたはユーザー定義エラーにマップして、そのエラーを生成する必要があります。

  • 原因:CVErr 値は Date に変換できない。 以下に例を示します。

      MyVar = CDate(CVErr(9)) 
    

解決策:Select Case ステートメントなどのコンストラクトを使用して、CVErr の戻り値を目的の値にマップします。

  • 原因: このエラーが 実行時 に発生する場合は、通常、式で使用されている Variant のサブタイプが正しくないか、配列 を含む VariantPrint # ステートメントで使用されています。

解決策: 配列を表示するには、各要素を個別に表示するループを作成します。

詳細については、該当する項目を選択し、F1 キー (Windows の場合) または HELP (Macintosh の場合) を押してください。

注:

複数のプラットフォーム間で Office エクスペリエンスを拡張するソリューションを開発することに関心がありますか? 新しい Office アドイン モデルを参照してください。 Office アドインは、VSTO アドインやソリューションに比べてフットプリントが小さく、HTML5、JavaScript、CSS3、XML などのほぼすべてのWeb プログラミング テクノロジーを使用して構築できます。

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。