[ VBA ] 文字列を連結する ( 実行時エラー ’13’: 型が一致しません )

Pocket

ここでは、文字列を連結する場合に出力されることがあるエラー 「 型が一致しません 」 がどのようなケースで発生するかをサンプルコードで掲載しています。

スポンサーリンク

実行時エラー ’13’: 型が一致しません

本エラーが発生する場合に出力されるダイアログです。あまりお目にかかりたくはありません。

型が一致しません

型が一致しません

文字列の連結と実行時エラー

文字列同士や文字列と数値を & や + で連結するサンプルスクリプトです。どのような場合にエラーとなるかはサンプル内のコメントを参照ください。

Dim str1 As String
Dim str2 As String
Dim strResult As String

str1 = "123"
str2 = "ABC"

' 文字列同士を&で連結する
strResult = str1 & str2
MsgBox (strResult) ' 123ABC

' 文字列同士を+で連結する
strResult = str1 + str2
MsgBox (strResult) ' 123ABC

' 数値を表すことができる文字列と数値を+すると、
' 文字列を数値としてみなし、演算する
strResult = str1 + 123
MsgBox (strResult) ' 246

' 文字列と数値を&で連結すると、文字列として連結される
strResult = str2 & 123
MsgBox (strResult) ' ABC123

' 数値を表すことができるない文字列と数値を文字列として+で連結するには、
' 数値を一度文字列に変換する必要がある
strResult = str2 + CStr("123")
MsgBox (strResult) ' ABC123

' 以下のような連結は型が違うためエラーが発生する
strResult = str2 + 123
MsgBox (strResult) ' 実行時エラー'13':型が一致しません
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *