Accessで開発中のアプリケーションで、レポート設定上プリンタ名称が必要になりました。1端末ずつインストール済みプリンタを調べるのも大変です。
このサンプルは、モジュール(VBA)を実行することで、インストール済みプリンタ名をテーブルに取得します。
目次
VBAでプリンタ名取得
サンプルプログラムはこんな感じです
- プリンタ情報を保持している、Printers コレクションからプリンタ情報を取り出す(8~14行 for next文)
- 取り出した情報をテーブル「tbl_Printer」にレコード追加する(9~13行目 addメソッド)
【テーブル追加している項目】
prnPrinter.DeviceName ‘デバイス(プリンタ名)
prnPrinter.Port ‘使用ポート名
Environ(“COMPUTERNAME”) ‘PC名
参考ページ: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名が登録されています。