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