投稿者 けろ-みお  (社会人) 投稿日時 2009/2/3 18:13:35
ちなみに私のところでは、たかさんが提示したコードで、ちゃんと動きましたので、
再現ができなかったのですが、
jk1, jk2, jk3, jk4, jk5 をShort型で処理するのであれば、下記のコードのように、Convert.ToInt16か、CShortを使ってみると結果はどうなりますか?

Dim jjk1 As Double
Dim jk1, jk2, jk3, jk4, jk5 As Short
Dim stra As String

' OKデータ 
'stra = "0010030030055"  

' NGデータ 
stra = "1190720780286"

' もしくは、Convert.ToInt16でなくても、CShortでも良い 
jk1 = Convert.ToInt16(Mid(stra, 1, 3))  
jk2 = Convert.ToInt16(Mid(stra, 4, 3)) 
jk3 = Convert.ToInt16(Mid(stra, 7, 3))
jk4 = Convert.ToInt16(Mid(stra, 10, 4))        
jk5 = jk1 + jk2 + jk3 + jk4

' OKデータだと、62、NGとおっしゃっているデータだと555になる 
Console.WriteLine(jk5)

jjk1 = jk1 / jk5 * 100

' NGと言われているデータだと、「21.441441441441441」になる 
Console.WriteLine(jjk1)


上記のコードでもし、OverflowExceptionが消えないようであれば、他の原因も考えられるので
その時は、またお尋ねください。