普通に表示させるだけなら、簡単だが大抵はフォームで入力を受け付け、
呼び出し元のモジュールで値を受け取る事が多いだろう、
例えばメール送信用のダイアログを作成する場合。
MailFormクラス
' メンバ変数 送信ボタンが押されたときにTrueになる。
Private send_clicked_ As Boolean
' メンバ変数へのゲッター
Public Property Get Result() As Boolean
Result = send_clicked_
End Property
Private Sub CancelButton_Click()
Hide
End Sub
Private Sub SendButton_Click()
send_clicked_ = True
Hide
End Sub
標準モジュール(フォーム呼び出し側)
Sub OnMailButtonClick()
Dim attach_path As String: path = "C:\hoge.xls"
Dim ret As Boolean
Dim f As New MailForm
' 初期入力値があれば、設定しておく。
f.ToTextBox.Text = "mail1@mail.com, mail2@mail.com, mail3@mail.com"
f.SubjectTextBox.Text = "●●の件について"
f.BodyTextBox.Text = "本文 ごにょごにょ…"
f.AttachmentTextBox.Text = _
Dir(attach_path) & Format(FileLen(attach_path) / 1000, " (#,##KB)")
' モーダルフォームで表示させる。
f.Show
' Xボタンで閉じられている可能性がある為、エラートラップしておく。
On Error Resume Next
ret = f.Result
On Error GoTo 0
If True = ret Then
' TODO: 送信ボタンが押されている時の処理。
MsgBox f.BodyTextBox.Text
End If
' フォームの解放
Unload f
Set f = Nothing
End Sub
ポイントとしては、Xボタンで閉じられると、フォームがUnloadされる為、
プロパティへのアクセス時にエラーが発生する。
その為、フラグ変数を調べる際はエラートラップが必要。
また、フォーム側では閉じる際に Hideメソッドを使い、Unload は呼び出し側で行う。
0 件のコメント:
コメントを投稿