はじめまして、−TAKASHI−と申します。
もともとC++上がりで、現在はVBで開発を行なっています。
早速ですが、既存システム(VB)のクラス化を図ろうとし
サンプル的に簡単なクラスモジュールを作成したのですが
何が悪いか、アプリ側から呼び出す際に以下のようなエラーが
表示されてしまいます。
"実行時エラー '91':"
"オブジェクト変数または Withブロック変数が設定されていません。"
ソース自体は至って簡単なものなのですが、ご指摘頂けるとありがたいです。
----- クラスモジュール -----
#クラス名(オブジェクト名):ViewUnit
Option Explicit
'-----------------------------------------------------------------
' 基本クラス: ViewUnit
' メソッド名: EnvInit
' 属 性: Public(外部CALL)
' 概 要: 帳票出力に関する環境初期化
' 引 数: strPath ... 帳票ファイル読込みPATH
' strPrinterName ... 出力先プリンタ−名称
' 戻 値: TRUE/FALSE ... 環境初期化成功/環境初期化失敗
'-----------------------------------------------------------------Public Function EnvInit(strCoPath As String, strPrinterName As String) As Boolean
EnvInit = True
End Function
----- 呼び出し側 Form内ソース -----
Option Explicit
Private Sub Command1_Click()
Dim output As ViewUnit
If output.EnvInit(" ", " ") = False Then
MsgBox "出力環境の初期化に失敗しました."
End If
End Sub
よろしくお願い致します。
クラスはインスタンスを作成しないと使えませんよ。
Dim output As ViewUnit
の後に
Set output = New ViewUnit
を追加してください。
あと、EnvInitの宣言行がコメントになってませんか?
LESIAさん、早速のご回答ありがとうございます。
>Set output = New ViewUnit
すいません、インスタンスの生成を忘れてました(^^;
ちなみに 宣言時で Dim output As New ViewUnit でも可能ということも
わかりました。 ありがとうございます。
>あと、EnvInitの宣言行がコメントになってませんか?
ソースを掲示板にコピーした際に、こちらの不手際でコメントのように
見えますが、実際はコメントされていません(改行されています)
紛らわしくなってしまいました・・・申し訳ありません。。
また、宜しくお願い致します。
ツイート | ![]() |