Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

VBAでデータベースからの作表・印刷処理を自動化する 2

Excel VBAでさまざまな表印刷を行う - ユーザーフォーム編

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/05/11 08:00

Excel VBAで「ページ設定」と「印刷」の2つの操作を組み合わせて、データベースから取得したデータの作表・印刷処理を自動化し、ページ内に収めるテクニックをご紹介します。

目次

はじめに

 前回の記事では、データベースからデータを取得し、印刷用のフォーマットに整えるマクロを作成しました。今回はユーザーフォームを作成します。マクロをGUIを通して操作することで、手軽に作成した機能を使うことができます。

 また、どうせ対話型処理を作るのであれば、いくつか便利な機能も組み込みたいです。そこで、表を自動整形してくれるオートフォーマット処理や、複数のクエリをリストから選んで実行できるようにしたいと思います。

ユーザーフォームでクエリの選択やオートフォーマット・印刷設定を行い印刷する
ユーザーフォームでクエリの選択やオートフォーマット・印刷設定を行い印刷する

対象読者

 Excel VBAを使ってマクロ(プログラム)を作ったことのある人、Visual Basicが使える人が対象です。

必要な環境

 Excel 2000/2002/2003/2007が使用できる環境。

マクロ実行時の注意事項

 Accessのデータベースファイル「msdata.mdb」を、マクロを実行するブックと同じフォルダにおいてください。

ユーザーフォームで印刷操作を行う-フォームの作成

 それではユーザーフォームを作成していきます。

  1. プロジェクトにユーザーフォームを追加し、フレームコントロールを1つ配置してその中にコンボボックスコントロールとコマンドボタンを配置します。
  2. コンボボックスコントロールは、[Style]プロパティを[2-fmStyleDropDownList]に設定し、テキスト入力フィールドは使わずにドロップダウンリストボックスとして機能するようにします。
  1. もう1つ、オートフォーマット設定用のフレームコントロールを配置し、大きめにサイズを取ります。そして、次のプロパティを設定しスクロールバーが使用できるようにします。
  2. プロパティ設定値
    Captionオートフォーマット
    ScrollBars2-fmScrollBarsVertical
    ScrollHeight380
    ScrollBarsプロパティを設定すると、フレームはスクロールバーが使える状態になりますが、ScrollHeightプロパティにスクロール範囲を設定しないと使用できない点に注意してください。
    そして、この中にトグルボタンコントロールを4つ配置します。サイズは適当に決めてください。また、Pictureプロパティに、オートフォーマットを実行した時の画像をキャプチャしたものを組み込んでおきます。このマクロでは、「image1.jpg」~「image4.jpg」の4枚の画像を組み込んでいます。
    組み込んだら、フレームとフォームのサイズを縮めます。これで、ピクチャ付きトグルボタンコントロールをスクロールして表示させることができるようになります。
ワンポイント・アドバイス
 画像キャプチャは、Paint Shop Proなどの画像ソフトを使用して、あらかじめ画面のキャプチャを撮り、適当な大きさにリサイズしておきます。
  1. フォームの右側にフレームとテキストボックス、フレームとチェックボックスコントロール、フレーム内にもう1つフレームとラベルコントロール・スピンボタンコントロールを配置します。また、フォームの上にコマンドボタンを2つ配置しておきます。
  2. スピンボタンコントロールは、次のプロパティを設定します。
    プロパティ設定値
    Min1
    Orientation0-fmOrientationVertical
    このスピンボタンは、印刷部数を設定するものです。部数0というのはありえませんので、スピンボタンの可動範囲の最小値を1にしておきます。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 瀬戸 遥(セト ハルカ)

    8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

バックナンバー

連載:Excel VBAでさまざまな表印刷を行う
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5