|
Abyss さん、お返事ありがとうございます。
>そうですか?要するに初期化のためのことでしょうかね。
>Activesheet.displayPageBreaks = Trueとかで
>ダイレクトに出来ると思いますが。
初期化のためだったのですね。勘違いしておりました。
>Modelessに指定していますから、標準モジュールの
>コードが最後まで進むのは仕様ですよね。ならば、
>必要な部分をUserformのボタンクリックイベントに
>直接書くのが簡単だと思います。
標準モジュール側の
UserForm1.Show vbModeless
を削除し、ユーザーフォーム側の下記イベントにそれぞれ入れてみましたが、
Private Sub CommandButton1_Click()
Private Sub UserForm_initialize()
ボタンクリックイベントに
UserForm1.Show vbModeless
を書くとユーザーフォームが開きません。(当然ですね)
また、イニシャライズのイベントがないと、Me.Tagの初期値にvbCancel
が入らないので、標準モジュール側の下記コードで「型が一致しません」という
エラーがでます。
If UserForm1.Tag = vbCancel Then
どのように直したらよいでしょうか?よろしくお願いいたします。
--標準モジュール側--
Sub insatsu()
Dim Ws As Excel.Worksheet
Dim HPBreak As Excel.HPageBreak
Set Ws = ActiveSheet
gyo = 50
Activesheet.displayPageBreaks = True
If UserForm1.Tag = vbCancel Then
'改行位置を入れる"
ElseIf UserForm1.Tag = vbOK Then
'行追加処理"
End If
End sub
--ユーザーフォーム側--
Private Sub CommandButton1_Click()
Me.Tag = vbOK
Me.Hide
End Sub
Private Sub UserForm_initialize()
Me.Tag = vbCancel
UserForm1.Show vbModeless
End Sub
|
|