まず、自動で設定させる部分を作成します。VBAエディタで「挿入」→「標準モジュール」として、表示されるウィンドウに、以下のように記述します。
Sub Auto_Open() UserForm1.Show End Sub
「Auto_Open()」はファイルが開かれたら最初に動作するプログラムで、2行目の「UserForm1.Show」は「ユーザーフォームを表示しなさい」という意味です。
次に、同時にシートが非表示となるように設定させる部分を作成します。ユーザーフォームのコードで、「UserForm_Initialize()」に以下を追加します。
Application.Visible = False
これは、アプリケーションすなわちExcelシートの表示状態(Visible)をFalse、つまり「見えないようにしなさい」という意味です。これで、ユーザーフォームが開かれると同時にシートが非表示となります。
さて、このままだと、ユーザーフォームを閉じた後に何も表示されないため、Excelファイルを終了できなくなります。そこで、下記に示すコードを追加して、ユーザーフォームが閉じられたら、Excelシートを表示させるようにします。
Private Sub UserForm_Terminate() Application.Visible = True End Sub
「UserForm_Terminate()」とは、ユーザーフォームが閉じられたら動作するプログラムです。2行目はExcelシートの表示状態をTrue、つまり「見えるようにしなさい」という意味です。これで、ユーザーフォームが閉じられると同時にシートが表示されます。
無事にできましたでしょうか? 出来上がったデータはこちらからダウンロードできます。
伊藤孝宏(いとう・たかひろ)
1960年生。小型モーターメーカーのエンジニア。博士(工学)。専門は流体工学、音・振動工学。現在は、LabVIEWを使って、音不良の計測・診断ソフト、特性自動検査装置などの開発を行っている。
Copyright © ITmedia, Inc. All Rights Reserved.