Accessテクニックのホームへ戻る

Accessのデフォルトのプリンタを設定する (2002,2003,2007)

 

Accessのデフォルトのプリンタを設定する

 

Accessのレポートなどを印刷するときのデフォルトのプリンタを選択します。Access 2002, 2003,2007では、Windowsのデフォルトプリンタとは別に、Access固有のデフォルトプリンタを選択することができます。このサンプルは、プリンタのコンボボックスからAccessのデフォルトプリンタを選択します。フォームを開くと、コンボボックスにAccessのデフォルトプリンタが選択された状態で表示されます。

 

レポートがデフォルトプリンタに印刷されるように設定されているときは、デフォルトプリンタを変更することにより出力先のプリンタを自動的に切り替えることができます。

 

1. 新規データベース作成

Accessを起動したら、ツールバーから新規作成のアイコンをクリックして、作業フォルダworkW170.mdbを作成します。

 

2. モジュールをインポート

Windowsのエクスプローラから、170.mdb(このページの最後からダウンロードできます)をダブルクリックして開きます。データベースウィンドウのオブジェクトから[モジュール]をクリックしたら、モジュール(basHelper)をドラッグしてW170.mdbのデータベースウィンドウにドロップします。モジュールがインポートされたら、170.mdbを閉じます。

 

3. 新規フォーム作成

データベースウィンドウのオブジェクトから[フォーム]をクリックして、右側の新規オブジェクトのショートカットから[デザインビューでフォームを作成する]をダブルクリックします。

 

4. コンボボックス作成

ツールボックスのコントロールウィザード無効になっていることを確認します。ツールボックスからコンボボックスのアイコンをクリックしたら、フォームの詳細セクションにドラッグします。ラベルの標題に「プリンタ」を入力したら、コンボボックスの上に移動します。コンボボックスをダブルクリックしてプロパティウィンドウを表示したら、表のようにプロパティを設定します。

 

フォームにコンボボックス作成

 

フォームに作成したコントロールのプロパティ

コントロールの種類

プロパティ

コンボボックス

名前

cboPrinters

値集合タイプ

値リスト

値集合ソース

空白

連結列

1

列数

1

 

 

5. コードビューに切り替えてイベント登録

ツールバーからコードのアイコンをクリックしてVBEを表示します。コードビューが表示されたらOption Explicitの直後に、次のイベントとプロシージャを追加します。(イベントプロシージャは、ドロップダウンリストからオブジェクトプロシージャを選択すると自動生成されますので、手入力する必要ありません。)

 

Private Sub Form_Load()

  fsFillPrinterList Me.cboPrinters

  Me.cboPrinters = Application.Printer.DeviceName

End Sub

 

Private Sub cboPrinters_AfterUpdate()

  Dim lngIndex As Long

 

  lngIndex = Me.cboPrinters.ListIndex

  Set Application.Printer = Application.Printers(lngIndex)

End Sub

 

6. フォームを開く

VBEのツールバーから表示(Access)のアイコンをクリックして、Accessのウィンドウに切り替えます。Accessのツールバーからフォームビューのアイコンをクリックしてフォームを開きます。コンボボックスからWindowsにインストールされているプリンタを表示したら、Accessのデフォルトプリンタを選択します。デフォルトプリンタに印刷されるように設定されているレポートは、ここで設定したプリンタに出力されます。

 

コンボボックスからAccessのデフォルトプリンタを選択する

 

Note

Accessのデフォルトプリンタの有効範囲

 

Accessのデフォルトプリンタを変更したとき、データベースを開いている間は、そのプリンタが有効になっています。ただし、データベースを一旦閉じると、WindowsのデフォルトプリンタがAccessのデフォルトプリンタとして初期化されます。

 

 

 

●解説

 

コンボボックスに、Windowsにインストールされているすべてのプリンタを表示するには、サブプロシージャfsFillPrinterListを呼びます。このサブプロシージャの引数には、コンボボックスのオブジェクトを指定します。ここでは、フォーム読み込み時/OnLoadのイベントでコンボボックスにプリンタのデバイス名を追加しています。

 

フォーム読み込み時のイベント

Private Sub Form_Load()

  コンボボックスにプリンタのデバイス名を追加する

  fsFillPrinterList Me.cboPrinters

  Accessのデフォルトプリンタを選択した状態で表示する

  Me.cboPrinters = Application.Printer.DeviceName

End Sub

 

コンボボックスから選択したプリンタを、Accessのデフォルトプリンタとして設定するには、コンボボックスの更新後処理/AfterUpdateイベントを使用します。このイベントでは、コンボボックスから選択したプリンタを、ApplicationPrinterプロパティに設定して、デフォルトのプリンタとします。

 

コンボボックスの更新後処理イベント

Private Sub cboPrinters_AfterUpdate()

  コンボボックスから選択したプリンタのインデックス番号取得

  lngIndex = Me.cboPrinters.ListIndex

  選択したプリンタをAccessのデフォルトプリンタとして設定する

  Set Application.Printer = Application.Printers(lngIndex)

End Sub

 

ダウンロード (170.lzh)