一応の動作はできるようになりましたが、ファイルを開いたら、自動でウィンドウが表示されれば、さらに便利です。そこで、もう1つコードを追加しましょう。
「メニュー→挿入→標準モジュール」と選択すると、標準モジュールにModule1が出来上がります。
エディタで、図15に示すように、以下の3行を入力してください。
「Sub Auto_Open」とは「ファイルが開かれたときに最初に動作するプログラム」の名称です。次の「UserForm1.Show」とは、「UserForm1を表示しなさい」という命令です。これで、ファイルが開かれると、ウィンドウが自動で開かれます。
ただし、Office製品ではマクロウイルスによる悪影響を防止するために、VBAを含んだファイルを開くと、図16に示すようなセキュリティの警告が表示されます(図はExcel2010での例)。
「コンテンツの有効化」をクリックして、VBAが動作するようにしてください。
うまくできましたでしょうか? 出来上がりのサンプルファイル(Sample3.xls)はリンクからダウンロードできます。
なお、入力欄に数値ではなく、文字を入力して、「計算」ボタンをクリックすると、図17に示すようにエラーとなります(図17)。
入力された内容を判断して、数値でなければセルに入力しないなどの処理とすれば、こういったエラーを防ぐことができます。いわゆる売り物のソフトでは、エラーを発生させないように、あるいはエラーが発生しても正しく処理ができるように対策を施していますが、コードは複雑なものになります。エラー対策はプログラミングの勉強にはなりますが、自分で使う分には数値以外は入力しないように気を付ければ十分ともいえます。
また、ランチャーウィンドウを作成し、複数のウィンドウを切り替えるようにすれば、1つのファイルでさまざまな設計計算に対応させることも可能ですが、コードはそれなりに複雑化します。「設計計算1つに1つのファイル」の方がシンプルともいえます。
どちらがよいのか一概には言えません。道具にこだわりすぎて設計業務と本末転倒にならない程度に工夫してみてください。
伊藤孝宏(いとう・たかひろ)
1960年生。小型モーターメーカーのエンジニア。博士(工学)。専門は流体工学、音・振動工学。現在は、LabVIEWを使って、音不良の計測・診断ソフト、特性自動検査装置などの開発を行っている。
Copyright © ITmedia, Inc. All Rights Reserved.