メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

適用対象

Form オブジェクト

Report オブジェクト

PrtDevMode プロパティを使用して、[印刷] ダイアログ ボックスのフォームまたはレポートに指定した、印刷デバイス モードの情報を設定したり返したりすることができます。 バリアント型の値の取得および設定が可能です。

expression.PrtDevMode

expression 必ず指定します。 [適用先] リスト内のいずれかのオブジェクトを返す式。

解説

PrtDevModePrtDevNames、および PrtMip プロパティの詳細については、Win32 のソフトウェア開発キットを参照してください。

PrtDevMode プロパティの設定値は、Win32 のソフトウェア開発キットで定義されている DEVMODE 構造体を複製する 94 バイトの構造体です。 PrtDevMode プロパティのメンバーの詳細については、Win32 のソフトウェア開発キットを参照してください。

PrtDev Mode プロパティのメンバーは次のとおりです。

メンバー

説明

DeviceName

最大 32 バイトの文字列で、ドライバーがサポートする装置の名前を示します (たとえば、指定されたプリンターが Hewlett-Packard LaserJet IIISi の場合は、"HP LaserJet IIISi" です)。 各プリンター ドライバーには、固有の文字列が付いています。

SpecVersion

Win32 のソフトウェア開発キットの DEVMODE 構造体のバージョン番号を指定する整数型の値です。

DriverVersion

プリンター ドライバーの開発者によって割り当てられたプリンター ドライバーのバージョン番号を指定する整数型の値です。

Size

DEVMODE 構造体のサイズをバイト単位で指定する 整数 。 (この値には、この構造体に従うことができる、デバイス固有のデータのオプションの dmDriverData メンバーは含まれません)。 アプリケーションがデータのドライバーに依存しない部分のみを操作する場合は、このメンバーを使用して、異なるバージョンを考慮することなく、この構造体の長さを確認できます。

DriverExtra

この構造体に従うことができる、デバイス固有のデータのオプションの dmDriverData メンバーのサイズをバイト単位で指定する整数。 アプリケーションがデバイス固有の情報を使用しない場合は、このメンバーを 0 に設定します。

Fields

DEVMODE 構造体の残りのメンバーのうち、初期化されているメンバーを示す長整数型の値です。

Orientation

用紙の方向を指定する整数型の値です。 1 (縦方向) または 2 (横方向) を指定できます。

PaperSize

印刷する用紙のサイズを指定する整数型の値です。 このメンバーに 0 から 256 までを設定した場合は、用紙の長さと幅は、それぞれ PaperLength メンバーと PaperWidth メンバーによって指定されます。 それ以外の場合は、PaperSize メンバーに、あらかじめ値を定義できます。

PaperLength

1/10 mm 単位で用紙の長さを示す整数型の値です。 このメンバーの値は、独自の用紙サイズに対して、または多様な用紙サイズに印刷できるドット マトリックス方式のプリンターなどの装置に対して PaperSize メンバーで指定した用紙の長さが優先されます。

PaperWidth

1/10 mm 単位で用紙の幅を指定する整数型の値です。 PaperSize メンバーで指定された用紙の幅よりも、このメンバーが優先されます。

Scale

印刷の出力が拡大または縮小される係数を指定する整数型の値です。 見た目のページ サイズは、scale/100 の係数で実際のページ サイズから拡大または縮小されます。 たとえば、Scale の値を 50 にした 8.5 x 11 インチのレター サイズの用紙には、出力されるテキストとグラフィックスが元の高さと幅の半分であるので、17 x 22 インチの用紙と同じ量のデータを含めることができます。

Copies

印刷装置が複数ページの複写をサポートしている場合に、部数を示す整数型の値です。

DefaultSource

用紙を供給する既定の用紙トレイを示す整数型の値です。

PrintQuality

プリンターの解像度を指定する整数型の値です。 指定できる値は 4 (高)、3 (中)、2 (低)、および 1 (ドラフト) です。

Color

整数型の値です。 カラー プリンターに対して、出力をカラーで印刷するかどうかを示します。 指定できる値は、1 (カラー) および 2 (モノクローム) です。

Duplex

整数型の値です。 両面印刷できるプリンターに対して、出力が用紙の両面に印刷されるかどうかを示します。 指定できる値は、1 (片面)、2 (水平)、および 3 (垂直) です。

YResolution

プリンターの y 軸の解像度をインチあたりのドット数 (dpi) で指定する整数型の値です。 プリンターがこのメンバーを初期化する場合、PrintQuality メンバーは、プリンターの x 軸の解像度を dpi で示します。

TTOption

TrueType フォントがどのように印刷されるかを示す整数型の値です。

Collate

印刷部数が複数ある場合に、照合を行う必要があるかどうかを示す整数型値です。 データはプリンターに 1 回だけ送られるので、照合を行わない方が、速く効率的に印刷できます。

FormName

用紙のサイズを示す 16 字までの文字列です。たとえば、"レター" や "標準" があります。

Pad

将来のバージョン用にスペース、文字、値などを埋めるために使う長整数型の値です。

Bits

ディスプレイ装置のカラー解像度をピクセルあたりのビット数で示す長整数型の値です。

PW

表示装置の表面 (画面またはプリンター) の幅をピクセルで示す長整数型の値です。

PH

表示装置の表面 (画面またはプリンター) の高さをピクセルで示す長整数型の値です。

DFI

装置の表示モードを示す長整数型の値です。

DFR

特定のモードの表示装置の周波数を hertz (秒あたりのサイクル数) で示す長整数型の値です。


注:  PrtDevMode プロパティを設定するには、Visual Basic for Applications (VBA) コードを使用します。

このプロパティは、デザイン ビューまたはレイアウト ビューで値の取得および設定が可能です。他のビューでは値の取得のみ可能です。

プリンター ドライバーによって、DEVMODE 構造体の 94 バイトの直後に、装置独自のデータが追加されます。 したがって、前に解説した DEVMODE のデータが 94 バイトを超えないようにします。

ExtDeviceMode 関数をエクスポートするプリンター ドライバーのみが、DEVMODE 構造体を使います。

アプリケーションで、DC_PAPERS、DC_PAPERSIZE、および DC_PAPERNAMES の値を使って DeviceCapabilities 関数を呼び出し、プリンターにサポートされる用紙のサイズと名前を取得できます。

TTOption メンバーの値を設定する前に、アプリケーションで DC_TRUETYPE の値を使って DeviceCapabilities 関数を呼び出し、プリンター ドライバーの TrueType フォントの使い方を調べておく必要があります。

次の例では、PrtDevMode プロパティを使って、レポートに定義されているページ サイズを参照します。

Private Type str_DEVMODE
RGB As String * 94
End Type
Private Type type_DEVMODE
strDeviceName As String * 32
intSpecVersion As Integer
intDriverVersion As Integer
intSize As Integer
intDriverExtra As Integer
lngFields As Long
intOrientation As Integer
intPaperSize As Integer
intPaperLength As Integer
intPaperWidth As Integer
intScale As Integer
intCopies As Integer
intDefaultSource As Integer
intPrintQuality As Integer
intColor As Integer
intDuplex As Integer
intResolution As Integer
intTTOption As Integer
intCollate As Integer
strFormName As String * 32
lngPad As Long
lngBits As Long
lngPW As Long
lngPH As Long
lngDFI As Long
lngDFr As Long
End Type
Public Sub CheckCustomPage(ByVal rptName As String)
Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String
Dim rpt As Report
Dim intResponse As Integer
' Opens report in Design view.
DoCmd.OpenReport rptName, acDesign
Set rpt = Reports(rptName)
If Not IsNull(rpt.PrtDevMode) Then
strDevModeExtra = rpt.PrtDevMode
' Gets current DEVMODE structure.
DevString.RGB = strDevModeExtra
LSet DM = DevString
If DM.intPaperSize = 256 Then
' Display user-defined size.
intResponse = MsgBox("The current custom page size is " & _
DM.intPaperWidth / 254 & " inches wide by " & _
DM.intPaperLength / 254 & " inches long. Do you want " & _
"to change the settings?", vbYesNo + vbQuestion)
Else
' Currently not user-defined.
intResponse = MsgBox("The report does not have a custom page size. " & _
"Do you want to define one?", vbYesNo + vbQuestion)
End If
If intResponse = vbYes Then
' User wants to change settings. Initialize fields.
DM.lngFields = DM.lngFields Or DM.intPaperSize Or _
DM.intPaperLength Or DM.intPaperWidth
' Set custom page.
DM.intPaperSize = 256
' Prompt for length and width.
DM.intPaperLength = InputBox("Please enter page length in inches.") * 254
DM.intPaperWidth = InputBox("Please enter page width in inches.") * 254
' Update property.
LSet DevString = DM
Mid(strDevModeExtra, 1, 94) = DevString.RGB
rpt.PrtDevMode = strDevModeExtra
End If
End If
Set rpt = Nothing
End Sub

次の例では、レポートの印刷方向を変更します。 レポートの現在の方向に応じて、印刷方向を縦方向と横方向で切り替えます。

Public Sub SwitchOrient(ByVal strName As String)
Const DM_PORTRAIT = 1
Const DM_LANDSCAPE = 2
Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String
Dim rpt As Report
' Opens report in Design view.
DoCmd.OpenReport strName, acDesign
Set rpt = Reports(strName)
If Not IsNull(rpt.PrtDevMode) Then
strDevModeExtra = rpt.PrtDevMode
DevString.RGB = strDevModeExtra
LSet DM = DevString
DM.lngFields = DM.lngFields Or DM.intOrientation
' Initialize fields.
If DM.intOrientation = DM_PORTRAIT Then
DM.intOrientation = DM_LANDSCAPE
Else
DM.intOrientation = DM_PORTRAIT
End If
' Update property.
LSet DevString = DM
Mid(strDevModeExtra, 1, 94) = DevString.RGB
rpt.PrtDevMode = strDevModeExtra
End If
Set rpt = Nothing
End Sub

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×