Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


20844 / 76732 ←次へ | 前へ→

【61296】Re:ユーザーフォームのボタンクリックイベントで再開処理する方法
質問  satsuki  - 09/4/24(金) 11:56 -

引用なし
パスワード
   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

0 hits

【61292】ユーザーフォームのボタンクリックイベントで再開処理する方法 satsuki 09/4/23(木) 17:22 質問
【61293】Re:ユーザーフォームのボタンクリックイベ... Abyss 09/4/23(木) 17:47 発言
【61294】Re:ユーザーフォームのボタンクリックイベ... satsuki 09/4/23(木) 18:08 質問
【61295】Re:ユーザーフォームのボタンクリックイベ... Abyss 09/4/23(木) 18:24 発言
【61296】Re:ユーザーフォームのボタンクリックイベ... satsuki 09/4/24(金) 11:56 質問
【61297】Re:ユーザーフォームのボタンクリックイベ... Abyss 09/4/24(金) 13:36 発言
【61300】Re:ユーザーフォームのボタンクリックイベ... satsuki 09/4/24(金) 14:52 お礼

20844 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free