アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB6で構造体(ユーザー定義型)の比較でエラーになります。

仕様でしょうか?

type TEST_STRUC
x as integer
y(0 to 10) as byte
end type

a as TEST_STRUC
b as TEST_STRUC

a.x = 1
b.x = 1

if a = b then    <--- ここでエラー
msgbox("同じ")
end if

強引でも比較できる方法があれば知りたいです。
項目ごとに比較するしかないのでしょうか

if a.x = b.x then

のように、長々と記述するのが間違えそうで・・・
簡単に比較できると、楽です。

A 回答 (1件)

Function TEST_STRUC_EQUAL(a As TEST_STRUC, b As TEST_STRUC) As Boolean


Dim i As Integer

If a.x <> b.x Then TEST_STRUC_EQUAL = False: Exit Function
For i = 0 To 10
If a.y(i) <> b.y(i) Then TEST_STRUC_EQUAL = False: Exit Function
Next
TEST_STRUC_EQUAL = True
End Function
のような等値判定する関数を作って
If TEST_STRUC_EQUAL(a, b) Then
MsgBox ("同じ")
End If
のようにする
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!