- - PR -
VB6関連
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-11-21 22:12
どうしてもわからないことがあり、書き込みしました。
VB6にて以下のようなプログラムを作成したのですが、(1)のdegreeの部分で 「コンパイルエラー ByRef引数の型が一致しません」というエラーが出ました。 Private Sub D3_click() Dim degree, min As Integer--(2) Call cal_DegMinSec(lat, degree, min, sec) --(1) End Sub Private Sub cal_DegMinSec(ByVal sec As Double, deg As Integer, min As Integer, sec As Integer) ・・ End Sub そこで、(2)の部分を以下の(3)のように変更してコンパイルするとエラーが 発生しませんでした。 Private Sub D3_click() Dim degree As Integer--(3) Dim min As Integer--(3) Call cal_DegMinSec(lat, degree, min, sec) End Sub Private Sub cal_DegMinSec(ByVal second As Double, deg As Integer, min As Integer, sec As Integer) ・・ End Sub どうして上記のようなことが起こったのかが、わからなくて困っています。 ご存知の方いましたら、教えてください。 [ メッセージ編集済み 編集者: はちみつガール 編集日時 2003-11-21 22:11 ] | ||||||||
|
投稿日時: 2003-11-21 23:23
遅くまでご苦労さまです。
と書くと、Integerとして宣言されるのはminだけで、degreeには型が指定されていないのでVariant型になってしまいます。 2つの変数を1行で宣言するとしたら、
というように、1つ1つの変数に対して型を指定しなければなりません < めんどくさ。 [ メッセージ編集済み 編集者: たーぞう 編集日時 2003-11-21 23:24 ] | ||||||||
|
投稿日時: 2003-11-22 09:38
返事ありがとうございます。
.netではIntegerで両方扱われるので、同じ感覚でVB6もやっていました ~~; VB6では、個別に宣言しないとだめなんですか。確かにめんどうくさいですね。 | ||||||||
|
投稿日時: 2003-11-27 09:39
昔ながらの (Deftype ステートメント)をつかっちゃうってのは、いかがですか?
サンプルも載っているので、VB6のヘルプを「defint」とかで検索してみてください(^^) |
1