HOME技術ExcelExcelで起動時にフォームのみ表示する

Excelで起動時にフォームのみ表示する

Excelで起動時にフォームを表示し、Excelそのものの表画面は非表示にする方法です。

起動時にフォームを表示する

「開発」→「コードの表示」から「Microsoft Visual Basic for Applications」を起動します。

「挿入」→「ユーザーフォーム」でフォームをつくります。
フォームの名前を「menu」とします。

VBAProject→「Microsoft Excel Objects」→「ThisWorkbook」を右クリックし「コードの表示」をクリックしてコード編集画面を表示します。
以下のコードを入力します。

Private Sub Workbook_Open()
menu.Show
End Sub

Workbook_Open()という名前のプロシージャを作成すると、ワークブックが開いたときに呼び込まれます。
この中に、[フォーム名].Showと書くと、フォームを表示します。

フォームが表示されたときにExcel本体を非表示にする

VBAProject→「フォーム」→「menu」を右クリックして、「コードの表示」をクリックします。

コード編集画面に以下のコードを書きます。

Private Sub UserForm_Initialize()
Application.Visible = False
End Sub

UserForm_Initialize()というプロシージャ名にすると、フォームが表示されるときに呼び込まれます。
Application.VisibleをFalseにすると、Excel本体が非表示になります。

フォームを閉じたときにExcel本体を表示する

menuのコード編集画面に、以下を追加します。

Private Sub UserForm_Terminate()
Application.Visible = True
End Sub

UserForm_Terminate()というプロシージャ名にすると、フォームを閉じたときに呼び込まれます。
Application.Visible = Trueにすると、Excel本体が表示されます。

関連記事

Excelのフォームのタブオーダーを指定する

Excelでフォームを設定し、部品を複数配置していると、タブキーやEnterキーを押すと次の部品にフォーカスを飛ばすことができます。 この順序が意図したとおりでない場合に、自分で設定する方法を調べまし…続きを読む

Excel VBAでシートを並び替える

ExcelVBAでシート内のデータを並び替える方法です。 VBAのコード Endrow  = Worksheets(SheetName).Range(“A1”).End(xlD…続きを読む

Excel VBAでフィルタの絞り込みを解除する

ExcelVBAを使って、フィルタで絞り込んだ内容を解除する方法です。 VBAコード If Worksheets(“シート名”).FilterMode Then Workshe…続きを読む

Excelで計算式を入れたセルに計算結果が反映されない

Excelで計算式を予め設定していたにもかかわらず、数値を入力してもそのセルに計算結果が反映されない時があります。 通常、自動計算する設定になっていますが、これが手動計算に変わっていることが原因です。…続きを読む

Excelで数式のみをコピーする

Excelで数式だけをコピーして貼り付ける方法です。 以下のように、セルC6に入力されている数式を、セルD6にコピーしたい場合、セルの右下をドラッグしてD6に持っていくと枠線やセルの背景色などの余計な…続きを読む

Excelで指定行おきに色をつける

Excelの行に、1行おきに色を付けたい、2行おきに色を付けたい、というときの方法です。 まず、色を付ける範囲を指定します。 次に、メニューから「ホーム」→「条件付き書式」→「新しいルール」をクリック…続きを読む

Excel VBAでコマンドプロンプトを起動しコマンドを実行する

Excel VBAでコマンドプロンプトを起動し、かつコマンドを実行する方法です。 コマンドプロンプトの実行 コマンドプロンプトを実行するには以下のように書きます。 CreateObject (&#82…続きを読む

Excelでワークシートを追加しようとすると「名前が変更されたか、移動や削除が行われた可能性があります」というエラーが表示される

Excelでワークシートを追加しようとしたら、「****\ワークシート.xlsxが見つかりません。名前が変更されたか、移動や削除が行われた可能性があります。」と表示されて、ワークシートを追加することが…続きを読む

Excel VBAで他のプログラムを実行し処理が終わってから次の処理をする

CreateObject(“WScript.Shell”).Runを使って他のプログラムを実行する場合、デフォルトだと起動したプログラムの処理が終わる前に次の処理に移ってしまい…続きを読む

Excel VBA:最終行番号を取得する

Excelでデータ管理をしていて、VBAでその全データに対して何らかの処理を行う場合、1行目から最終行までループさせて処理を1行ずつ行う場合には、最終行を取得する必要があります。 今回は、最終行を取得…続きを読む