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