Excel VBA:ユーザーフォームを開いた後、シートにフォーカスを移す

Windows APIのSetFocusでフォーカスを移動するVBAを掲載しています。



Homeに戻る > Excel フォームのTipsへ

例えば、ユーザーフォームに説明のみを記入している場合、ユーザーフォームを開いた後シートにフォーカスを移したい場合があります。

それをVBAで行う方法を掲載しています。

ここでは、Windows API の SetFocus を使いフォーカスを移します。

ユーザーフォームは、vbModeless(モードレス)で開きます。



作成したExcel実行画面

■ 「科目名一覧」ボタンをクリックすると、科目名一覧のユーザーフォームを開きその後、ボタンにフォーカスを戻しています。

ユーザーフォームを開いたシート


Excel VBA実行コード

VBAの解説

VBAコード

Option Explicit

Private Declare Function SetFocus Lib "user32" (ByVal hwnd As Long) As Long

Private Sub CommandButton1_Click()
    
    'ユーザーフォームを開く
    UserForm1.Show vbModeless
    'シートにフォーカスを移す
    SetFocus Application.hwnd

End Sub




Homeに戻る > Excel フォームのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved