投稿者 魔界の仮面弁士  (社会人) 投稿日時 2017/7/6 19:47:51
> Dim a As Short = BitConverter.ToInt16(data, 0)   '符号付き 2 バイト整数に変換 

data.Length が 1 の時に処理しようとしていませんか?
変換するのは、データが揃ってからです。

ToInt16 に渡すのであれば、data.Length は 2 以上でなければなりません。

Dim bin3 As Byte() = {&H12, &H34, &H56, &H78}
Dim bin2 As Byte() = {&H65, &H43}
Dim bin1 As Byte() = {&H78}

Dim i5 As Short = BitConverter.ToInt16(bin3, 0) '13330 (&H3412) になる 
Dim i4 As Short = BitConverter.ToInt16(bin3, 1) '22068 (&H5634) になる 
Dim i3 As Short = BitConverter.ToInt16(bin3, 2) '30806 (&H7856) になる 
Dim i2 As Short = BitConverter.ToInt16(bin2, 0) '17253 (&H4365) になる 
Dim i1 As Short = BitConverter.ToInt16(bin1, 0) '長さが足りないのでエラー 
Dim i0 As Short = BitConverter.ToInt16(bin3, 3) '長さが足りないのでエラー