Excel VBA質問箱 IV

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

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


11478 / 13645 ツリー ←次へ | 前へ→

【15872】フォームをアクティブにするには 上海小次郎 04/7/9(金) 20:39 質問[未読]
【15873】Re:フォームをアクティブにするには ichinose 04/7/9(金) 21:51 回答[未読]
【15874】Re:フォームをアクティブにするには ichinose 04/7/9(金) 22:20 回答[未読]
【15880】Re:フォームをアクティブにするには [名前なし] 04/7/10(土) 0:06 回答[未読]

【15872】フォームをアクティブにするには
質問  上海小次郎  - 04/7/9(金) 20:39 -

引用なし
パスワード
   フォーム上のボタンをクリックすると
Application.InputBox によってキー入力データを
取り込むフォームをつくりました。

そうすると、Application.InputBox によってキー入力データを
取り込んだ後、元のフォームがアクティブでなくなってしまいます。

フォームをクリックすることなく、元のフォームをアクティブに
戻す方法を考えています。

例えば、特定のフォームをマクロからアクティブにできるコード
があれば、解決しそうなのですが、そのような方法をご存知の方
教えていただけませんか。

【15873】Re:フォームをアクティブにするには
回答  ichinose  - 04/7/9(金) 21:51 -

引用なし
パスワード
   ▼上海小次郎 さん:
こんばんは。

>フォーム上のボタンをクリックすると
>Application.InputBox によってキー入力データを
>取り込むフォームをつくりました。
>
>そうすると、Application.InputBox によってキー入力データを
>取り込んだ後、元のフォームがアクティブでなくなってしまいます。
>
>フォームをクリックすることなく、元のフォームをアクティブに
>戻す方法を考えています。
>
>例えば、特定のフォームをマクロからアクティブにできるコード
>があれば、解決しそうなのですが、そのような方法をご存知の方
>教えていただけませんか。
私が頭に浮かんだ方法はふたつです。

1. Application.Inputboxと同じような仕様をUserformで実現する方法。
  これだと呼び出した(Showメソッドで)フォームに戻ってきたときそのフォームは
  アクティブになります(モーダルモードの場合)。

2.一度、Hideしてから、再度Showメソッドで表示する。
'=============================================================
Private Sub CommandButton1_Click()
  ans = Application.InputBox("aaa")
  With Me
    .Hide
    .Show
    End With
End Sub
この時は、再度のShowメソッドでActivateイベントが発生しますから
Activateイベントコードが記述されている場合は、制御が必要になりますが・・。

【15874】Re:フォームをアクティブにするには
回答  ichinose  - 04/7/9(金) 22:20 -

引用なし
パスワード
   >>フォーム上のボタンをクリックすると
>>Application.InputBox によってキー入力データを
>>取り込むフォームをつくりました。
>>
>>そうすると、Application.InputBox によってキー入力データを
>>取り込んだ後、元のフォームがアクティブでなくなってしまいます。
>>
>>フォームをクリックすることなく、元のフォームをアクティブに
>>戻す方法を考えています。
>>
>>例えば、特定のフォームをマクロからアクティブにできるコード
>>があれば、解決しそうなのですが、そのような方法をご存知の方
>>教えていただけませんか。
>私が頭に浮かんだ方法はふたつです。
>
>1. Application.Inputboxと同じような仕様をUserformで実現する方法。
>  これだと呼び出した(Showメソッドで)フォームに戻ってきたときそのフォームは
>  アクティブになります(モーダルモードの場合)。
>
>2.一度、Hideしてから、再度Showメソッドで表示する。
>'=============================================================
>Private Sub CommandButton1_Click()
>  ans = Application.InputBox("aaa")
>  With Me
>    .Hide
>    .Show
>    End With
>End Sub
>この時は、再度のShowメソッドでActivateイベントが発生しますから
>Activateイベントコードが記述されている場合は、制御が必要になりますが・・。

もうひとつは、

上記のクリックイベントプロシジャーで別のコントロールにフォーカスを移す。
'================================================================
Private Sub CommandButton1_Click()
  ans = Application.InputBox("aaa")
  textbox1.SetFocus 'イベント対象のコントロールだとダメでした
End Sub
「2.」の方法だと色々面倒な事がありそうなので
「1.」かこの方法がよいのかもしれません。

【15880】Re:フォームをアクティブにするには
回答  [名前なし]  - 04/7/10(土) 0:06 -

引用なし
パスワード
   AppActivateでフォームのCaptionを指定すればいいのでは?

AppActivate "UserForm1"

という感じで。詳しくはヘルプを参照してください。

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