みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

VB6.0 →VB2005 のアップグレードでエラー表示

VB6.0の標準モジュールでは
Private Type typset
a As String
b As String
c As Integer
End Type
Public make() As typset
と記述してエラーもなく正常なのですが、VB2005にアップグレードしたときに、
Option Strict Off
Option Explicit On
Module Module1

Private Structure typset
Dim a As String
Dim b As String
Dim c As Integer
End Structure
Public make() As typset←▼エラー▼           
End Module

【エラー内容】
'make' は、module 'Module1' をとおして型 'typset' を namespace 'WindowsApplication1' で公開することはできません。

structure部をPublicなどにしてもエラーは消えますが、参照先に影響が出てしまいます。
根本的な解決方法が分かりません。
教えていただけないでしょうか?

投稿日時 - 2007-01-12 19:26:02

QNo.2661550

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

この宣言って矛盾していると思いませんか?

型の宣言がPrivateで その型を使った変数をPublicにしている
Privateな型なので モジュール内でしか使えない
ということは Publicでどこからでも参照可能な変数というのはおかしいでしょう

Make(1).a とした場合の メンバーaは本来 他のモジュールやクラス、フォームからアクセス出来てはいけないものではないでしょうか...

VB6自体のチェックが甘いのだと思いますよ ...

投稿日時 - 2007-01-13 01:24:10

お礼

ありがとうございます。
私も変だな?とはおもっていたんですけどね、
VB6で正常に起動したことでこういう形式もあるのだなと思っていました。。

>VB6自体のチェックが甘いのだと思いますよ
VB6では見つけれなかったエラーがVB2005では見つかることができた。
ということです?

なぜVB6では正常に起動したのかはご存知でしょうか?

投稿日時 - 2007-01-14 22:46:37

あなたにオススメの質問