MENU

【AccessVBA】 インストール済みプリンタ名を取得する方法(テーブル出力)

Accessで開発中のアプリケーションで、レポート設定上プリンタ名称が必要になりました。1端末ずつインストール済みプリンタを調べるのも大変です。

このサンプルは、モジュール(VBA)を実行することで、インストール済みプリンタ名をテーブルに取得します。

目次

VBAでプリンタ名取得

サンプルプログラムはこんな感じです

  • プリンタ情報を保持している、Printers コレクションからプリンタ情報を取り出す(8~14行 for next文)
  • 取り出した情報をテーブル「tbl_Printer」にレコード追加する(9~13行目 addメソッド)

【テーブル追加している項目】
prnPrinter.DeviceName ‘デバイス(プリンタ名)
prnPrinter.Port ‘使用ポート名
Environ(“COMPUTERNAME”) ‘PC名

[vb] Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("tbl_Printer") Dim prnPrinter As Printer ‘登録済みプリンタ For Each prnPrinter In Application.Printers rs.AddNew rs!Comp_Name = prnPrinter.DeviceName ‘デバイス(プリンタ名) rs!Port = prnPrinter.Port ‘使用ポート名 rs!Printer_Name = Environ("COMPUTERNAME") ‘PC名 rs.Update Next prnPrinter Set db = Nothing Set rs = Nothing [/vb]

参考ページ:https://docs.microsoft.com/ja-jp/office/vba/api/access.application.printer

使い方アイデア

今回、レポート設定に必要な情報だったので作成しましたが、ヘルプデスク・トラブルシューティングなどにも応用できるかもしれないと思います。

  • プリンタが動かないときの設定確認(プリンタ名や出力ポートの確認)
  • PC再キッティング前のプリンタ情報取得

なお、EXCEL-VBAでもほぼこのコードを流用することで、プリンタ名取得が可能です。(同じVBAなので基本同じことが可能)9~13行目をWorksheetの出力するように変えてあげればOKです。(挙動未確認ですが・・)

[vb] worksheets("test").cells(1,"A").value = = prnPrinter.DeviceName ‘デバイス(プリンタ名) worksheets("test").cells(1,"B").value = = prnPrinter.Port ‘使用ポート名 worksheets("test").cells(1,"B").value = = Environ("COMPUTERNAME") ‘PC名 [/vb]

多分こんな感じです。ワークシート「test」のセル(1,”A”)にプリンタ名を出力させています。行は変数でループ処理を組み込んでください。

プリンタ名取得のサンプルファイルの使い

モジュール内の「Get_Printer」を実行してください。処理が終わると、テーブル「tbl_Printer」内に、プリンタ名・ポート・PC名が登録されています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次