次は「印刷プレビュー」ボタンがクリックされたときの処理だ。テキストボックスに値が未入力なら、警告メッセージを発して処理を抜ける。それ以外は、以下の処理を繰り返す。HideメソッドでUserFormを隠す。Hideメソッドを使った場合は、UserFormが隠れているだけで、メモリ上には残っているので、再度呼び出した場合は、入力した値を保持したまま表示される。UserFormを終わらせて入力した値を消去するには、Unloadメソッドを使用するとよい。すればメモリ上からも削除される。Orientationプロパティには、ワークシートを印刷する場合のページの方向を設定する。ここでは、「xlPortrait」を設定して「縦モード」で印刷するよう設定している。「横モード」で印刷する場合は「xlLandscape」を設定する。方眼紙を1ページに収めるには、FitToPagesTall/FitToPagesWideプロパティを使用し、値に「1」を指定して、1ページに収まるよう指定する。FitToPagesTallプロパティは、ワークシートを印刷するときに、縦何ページ分で収めるかを示す値を設定する。FitToPagesWideプロパティは、ワークシートを印刷するときに、横何ページ分で収めるかを示す値を設定する。「左余白」の設定には「LeftMargin」、「右余白」には「RightMargin」、「上余白」には「TopMargin」、「下余白」には「BotttomMargin」プロパティでそれぞれ指定し、センチからポイントに変換するCentimetersToPointsメソッドで、各余白を入力するテキストボックスの値を指定している。最後に、PrintPreviewメソッドで印刷プレビューを表示する。方眼紙を印刷するときの注意なお、このフォームで初期値に設定している値は、先にも書いたがA4サイズ用紙の縦でちょうどいっぱいの方眼紙になる。実際に印刷すると「A4」用紙一杯の極小方眼紙が印刷される。方眼紙を大きくしたい場合は、図3の方法で「列幅」や「行高」を変更して、その値を取得して指定し、「範囲指定」の「セルの範囲」も変更する必要がある。これは実際に設定して、「印刷プレビュー」で確認しながら、試行錯誤して設定する以外にない。「行高」「列幅」をツールチップで確認する行の高さや、列の幅を同じにするには、図3のように「行幅変更」位置や「行高変更」位置ににマウスカーソルを合わせて、ツールチッブで表示される値を確認して、入力するといいだろう。図3では同じ「42ピクセル」になっているが、実際の「高さ」や「幅」は数値が異なっている。「列幅」や「行高」に指定する値は、この「幅」と「高さ」の値を指定する。「42ピクセル」ではないので、注意してほしい。作成した「Excel方眼紙作成フォーム」を実行すると図4のように表示される。印刷プレビューの結果あとは、マクロを実行して実際にExcel方眼紙を作成したり、印刷したりして試してほしい。次回は、マクロをExcelのメニューから呼び出すTips今回はExcel方眼紙の作成方法をフォーム上から行うTipsを紹介した。コード自体はそんなに難しくないが、「A4」用紙に方眼紙を収めるのがちょっと面倒だ。これはプログラムというより、試行錯誤してセルの範囲を指定して、印刷プレビューで確認しながら、セルの範囲を指定していく以外にない。Excelの画面では大きく見える方眼紙も、実際に印刷すると極小の方眼紙になる。これは指定したページを1ページに収めるように指定しているから仕方がないだろう。作成したマクロだが、いちいちボタンを作成して呼び出すのは面倒なので、Excelのメニューからマクロを起動できるようにしたい。次回は、今回作成したフォームをどのようにして呼び出すかを解説しよう。「Excel方眼紙作成」というメニューを追加して、そこからフォームを表示させるようにするので、お楽しみに。Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。