VBプログラミングを必死にこころみてる初心者です。
構造体の構造体宣言(とう言葉があるのかな?)を行い、
プロシージャで変数を初期化しようと試みたのですが、コンパイルエラーが出て
うまくいきません。以下に抜粋を記します。よろしければアドバイス頂けたら
うれしいです。
☆ 標準モジュール
Public Type AMENUtyp
aa As Byte
bb As Byte
:
End Type
Public Type BMENUtyp
cc As Byte
dd As Double
:
End Type
Public Type CHENGEtyp
AMENU(4) As AMENUtyp
BMENU(44) As BMENUtyp
:
End Type
Public CHENGE As CHENGEtyp
☆ frm
Private Sub sub_CCchenge()
Erase CHENGE.BMENU ← ここでおちる
Erase CHENGE.AMENU
:
エラーの内容は以下のものです。
”コンパイルエラー:名前が適切ではありません :BMENUtyp”
文法的には間違ってないとは思うのです。根拠は、
Erase CHENGE.BMENU のステートメントをコメントにしたら
コンパイルは通りました。(Erase CHENGE.AMENUは、とおります)
アドバイスお願いします。
ソースをコピペして、試してみましたが
自分の環境では特にエラーはでなかったです。
根本的なところでスペルミスとかないでしょうか?
たいした助言でなくて申し訳ないのですが(-_-;;
参考までに自分の実行ソースと動作内容を。
<Module1.bas>
Public Type AMENUtyp
aa As Byte
bb As Byte
End Type
Public Type BMENUtyp
cc As Byte
dd As Double
End Type
Public Type CHENGEtyp
AMENU(4) As AMENUtyp
BMENU(44) As BMENUtyp
End Type
Public CHENGE As CHENGEtyp
<form1.frm> (標準EXEにコマンドボタンを1つ貼り付けました)
Private Sub Command1_Click()
CHENGE.AMENU(2).aa = 1
CHENGE.AMENU(2).bb = 1
CHENGE.BMENU(10).cc = 1
CHENGE.BMENU(10).dd = 1
Erase CHENGE.BMENU
Erase CHENGE.AMENU
End Sub
フォーム中、問題の箇所で中断して、1行ずつ実行して
Erase前後での値を確認しましたが、Erase前に値1が設定され、
Erase後にクリアされていました。
コンパイルも問題なくできています。
以上、参考にならないかもで申し訳ないのですが、報告まで。
ソースをコピペして、試してみましたが
自分の環境では特にエラーはでなかったです。
根本的なところでスペルミスとかないでしょうか?
たいした助言でなくて申し訳ないのですが(-_-;;
参考までに自分の実行ソースと動作内容を。
<Module1.bas>
Public Type AMENUtyp
aa As Byte
bb As Byte
End Type
Public Type BMENUtyp
cc As Byte
dd As Double
End Type
Public Type CHENGEtyp
AMENU(4) As AMENUtyp
BMENU(44) As BMENUtyp
End Type
Public CHENGE As CHENGEtyp
<form1.frm> (標準EXEにコマンドボタンを1つ貼り付けました)
Private Sub Command1_Click()
CHENGE.AMENU(2).aa = 1
CHENGE.AMENU(2).bb = 1
CHENGE.BMENU(10).cc = 1
CHENGE.BMENU(10).dd = 1
Erase CHENGE.BMENU
Erase CHENGE.AMENU
End Sub
フォーム中、問題の箇所で中断して、1行ずつ実行して
Erase前後での値を確認しましたが、Erase前に値1が設定され、
Erase後にクリアされていました。
コンパイルも問題なくできています。
以上、参考にならないかもで申し訳ないのですが、報告まで。
そのエラーは名前が重複してたりすると
出るエラーだと思いましたが、
そういうことはありませんか?
私もためしましたが特にそういうエラーはでません。
Jさん、Loreleyさん、ありがとうございます。
どうもスペルミスではないようです。
もともと、このプログラムはVB4.0で書かれていたので、その辺が関係あるのかも
しれません。もう一度見直してみます。