MsgBox デバッグに御用心

Excel VBA でプログラムを作っている途中で、「この場合、この変数に何が入るのかな?」と確かめたくなった場合に、一時的に MsgBox を入れておいて実行し、その変数の中身を確認するということをしばしば私はやります。
 
しかし、API等から取得した文字列の場合は、注意が必要です。
文字列の途中に vbNullChar が存在すると、そこまでしか MsgBox は表示してくれないからです。
Debug.Print なら、全部見ることができます。

Sub Sample()
  Dim X As String
  X = "AB" & vbNullChar & "CD"

  MsgBox X & vbCrLf & Len(X)
  Debug.Print X
End Sub

 
 
10年ほど前に、日立の CommuniNet Extension を使ってオンライン画面の自動制御のプログラムを VB4 で作ったときに、このことを知らなくて「あっれ〜。なんで画面の文字列が取得できているはずなのに見れないんだ?」とずいぶん悩んだもんです。
画面上にフィールドが定義されていない部分がヌルキャラだったのが原因でした。