オデッセイの運営サイト一覧

ExcelⓇ、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート

企業・教育機関の皆さまへ 試験会場を探す お問い合せ

やってみよう!Excel VBAで業務改善!|VBAとの出会い編

第31話「システムをリリースしよう!」

第31話「システムをリリースしよう!」

登場人物紹介

メニュー画面も用意しよう

星くんがポンと手をたたきました。

「なるほど…MsgBoxは"関数"だから、戻り値があるんだね。
このケースでは"vbYes"、つまり[はい]ボタンがクリックされたときだけ、Ifステートメント内の処理が実行されるんだ!
でも今までMsgBoxは、こんな書き方しなかったよね…?」

「うん。メッセージを表示させるだけのときは、MsgBox "メッセージ"、とカッコを使わないし、戻り値も利用しない。
これはVBAの記述ルールなんだ。
戻り値を利用するときは引数をカッコで囲み、利用しないときは半角スペースの後に続けて引数を記述する。
………で、ここで[はい]ボタンをクリックすると…」

八木くんがダイアログボックスの[はい]ボタンをクリックします。
画面に、印刷プレビューが表示されました。

「Ifステートメント内の"ActiveSheet.PrintPreview"は、アクティブなシートの印刷プレビューを実行する。
この処理が実行されるのは、追加アイテムをチェックした後で、対象ブックを閉じる前だ。
だから、印刷したいオーダー表のシートが、ちょうどアクティブになっているときだよ」

「印刷プレビューじゃなくて、一気に印刷してしまわないのかい?」

「そのときは、"ActiveSheet.PrintOut"と記述すればいい、そうすればいきなり印刷されるよ。
でも印刷の設定はプリンタごとに違うだろうし、オーダー表の大きさもマチマチなんだろ?
いきなり印刷するのではなく、プレビューを表示してあげたほうが、レイアウトの調整もできてユーザーに親切だと思うよ」

ウンウンと、星くんもしきりにうなずきます。

「あとはメニュー画面を少しお化粧しよう。
いくらなんでもボタンがポツンとおいてあるだけでは、味気なさすぎる。
ワードアートでタイトルを書き、ボタンの文字列も変更しよう。
ここは星、おまえがやってみろ」

星くんは八木くんのPCを借り、メニュー画面のお化粧を始めました。

「こんなものかい…?」

「うん!いいんじゃないか…!」

シーズン1 「VBAとの出会い」編:エピソード一覧

一覧へ戻る

MENU