| 
    
     |  | >>フォーム上のボタンをクリックすると >>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.」かこの方法がよいのかもしれません。
 
 
 |  |