プログラムの概要
事務処理に於いて、集計結果等を印刷して、確 認等を行う事も多い為、ペーパーレスオフィス が推奨される昨今に於いても、矢張り印刷に関 する技術は必要で有る。
Visual Basic から印刷を行う方法は、.NET 以 降、PrintDocument オブジェクトを使用する 方法が、標準機能と仕て一般的で有るが、 Professional 版 等 で は ReportView や CrystalReport を利用する事も可能で有る。亦、 Power Packs 2 で は 視 覚 的 確 認 が 容 易 な FormPrint が機能を向上させて復活して居る。 此処では、Access のデータを、条件を設定し て抽出し、Word ドキュメントに、抽出したレ コードデータを、表形式で吐き出し、Word の 印刷機能を使用して印刷を行う。
印刷Ⅵ
VB 2005 ⑥ □ System.Data.OleDb 名前空間(Access データベースの操作) □ データベースの接続(OleDbConnection オブジェクト) □ データベースの操作(OleDbDataAdapter オブジェクト) □ テーブルデータの格納(DataSet オブジェクト) □ Word オブジェクト(Application、Document、Table オブジェクト) □ データと書式の設定(Selection オブジェクト、TypeText メソッド) □ レポートのプレビュー(Application オブジェクト、PrintPreview プロパティ) □ レポートの印刷(Application オブジェクト、PrintOut メソッド) 今回の課題項目 □ Word オブジェクト(Application、Document、Table オブジェクト) □ データと書式の設定(Selection オブジェクト、TypeText メソッド) □ レポートのプレビュー(Application オブジェクト、PrintPreview プロパティ) □ レポートの印刷(Application オブジェクト、PrintOut メソッド) 今回の重点項目■ オブジェクト・プロパティ一覧 ■ コントロールの種類 プロパティ プロパティの設定値 フォーム name WordPrint FormBorderStyle FixedSingle StartPosition CenterScreen Text WORD プリント グループボックス1 name grpSearch Font MS明朝、太字、9 Text 検索条件 グループボックス2 name grpMethod Font MS明朝、太字、9 Text タイトル項目の検索方法
ラベル1~7 name lblItem1 ~ lblItem5
AutoSize False Font MS明朝、太字、10 Text lblItem1:タイトル lblItem2:価格 lblItem3:購入日 lblItem4:カテゴリ ID lblItem5:著者 ID lblItem6:~ lblItem7:~ TextAlign MiddleRight ラジオボタン1~ラジオボタン4 グループボックス1 ボタン2 ラベル1 ~ ラベル7 ボタン3 ボタン1 テキストボックス2 テキストボックス1 テキストボックス3 テキストボックス4 テキストボックス5 コンボボックス2 コンボボックス1 グループボックス2
テキストボックス1 name txtTitle Font MS明朝、太字、9 Text 空白 テキストボックス2 name txtPrice1 Font MS明朝、太字、9 Text 空白 TextAlign Right テキストボックス3 name txtPrice2 Font MS明朝、太字、9 Text 空白 TextAlign Right テキストボックス4 name txtDate1 Font MS明朝、太字、9 Text 空白 テキストボックス5 name txtDate2 Font MS明朝、太字、9 Text 空白 コンボボックス1 name cboCate Font MS明朝、太字、9 Text 空白 コンボボックス2 name cboWriter Font MS明朝、太字、9 Text 空白
ラジオボタン1~4 name radMethod1 ~ radMethod4
Checked radMethod1:True Font MS明朝、太字、9 Text radMethod1:部分一致 radMethod2:前方一致 radMethod3:後方一致 radMethod4:完全一致 コマンドボタン1 name btnPreview Font MS明朝、太字、12 Text プレビュー コマンドボタン2 name btnExecute Font MS明朝、太字、12 Text 印刷 コマンドボタン3 name btnFinish Font MS明朝、太字、12 Text 終了 参照設定 事前に、下記のライブラリを参照設定して置く。
ActiveX Data Object x.x Library、Microsoft Word x.x Object Library ※ x.x はバージョンに依り異なる。
■ プログラムリスト ■
Public Class WordPrint Private SD As String Private Cn As ADODB.Connection Private Rs As ADODB.Recordset Private Wd As Word.Application Private Dc As Word.Document ' フォームが読み込まれた時の処理
Private Sub WordPrint_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load Dim F As String Dim I As Integer ' 起動パスの取得
SD = Application.StartupPath : If Not SD.EndsWith( "¥" ) Then SD &= "¥"
' コネクションの確立 F = SD & "data.mdb"
Cn = New ADODB.Connection
Cn.CursorLocation = ADODB.CursorLocationEnum.adUseClient Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & F & ";Persist Security Info=False;"
Cn.Open( )
' コンボボックスへフィールド名の設定 Rs = New ADODB.Recordset
Rs.Open( "SELECT * FROM カテゴリ", Cn ) If Rs.RecordCount > 0 Then
For I = 1 To Rs.RecordCount
cboCate.Items.Add( Rs.Fields( "カテゴリ名" ).Value & "" ) Rs.MoveNext( )
Next End If Rs.Close( )
Rs.Open( "SELECT * FROM 著者", Cn ) If Rs.RecordCount > 0 Then
For I = 1 To Rs.RecordCount
cboWriter.Items.Add( Rs.Fields( "著者名" ).Value & "" ) Rs.MoveNext( ) Next End If Rs.Close( ) 此処で宣言した変数は、宣言した クラス内の総てのプロシージャで 値の参照と設定を行う事が出来 る。 此処で宣言した変数は、宣言した プロシージャ内でしか値の参照と 設定を行う事が出来ない。 Object 変数は New キーワードを 用いてインスタンスを生成する。 CursorLocation プロパティの設 定はAccess 2000 以降では必須。 null データを文字列型と仕て操作 したり、数値化するとエラーが発 生する為、ヌルストリングを連結 して防いで居る。 MoveNext メソッドは、レコード セット内でカレントレコードを1 行後に進めるメソッドで有る。 RecordCount プロパティには、抽 出したレコード数が格納される為 其の数丈のループで、総てのレコ ードを処理する事が出来る。
' ワードの設定 F = SD & "wordprint.doc" Wd = New Word.Application If Dir( F ) = "" Then Dc = Wd.Documents.Add Dc.SaveAs( F ) Else Dc = Wd.Documents.Open( F ) End If Dc.Content.Font.Name = "MS 明朝" Wd.Visible = True End Sub ' フォームが破棄された時の処理
Private Sub WordPrint_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Disposed ' オブジェクトの解放 Cn.Close( ) Rs = Nothing Cn = Nothing ' ワードの終了 Dc.Close( SaveChanges:=Word.WdSaveOptions.wdDoNotSaveChanges ) ' 値:0 Wd.Quit( ) Dc = Nothing Wd = Nothing End Sub ' ボタン(終了)がクリックされた時の処理
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click ' フォーム自体をメモリから消去 Me.Dispose( ) ' プログラムを強制的に終了 End End Sub ' ボタン(プレビュー、印刷)がクリックされた時の処理
Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnPreview.Click, btnPrint.Click
Dim TBL As Word.Table Dim SQL As String Dim C As Integer Dim I As Integer CreateObject ( "Word.Application" ) でもオブジェクトを生成す る事が出来る。 デバック後に、Word 文書への書 込状況を隠し度い場合は、此の行 のコメントアウトする。 指定したファイルが存在しない場 合は、新たに作成し、名前を付け て保存する。 此処で、変更点の保存を促すメッ セージボックスが表示されない様 に、設定して居る。 此等の Object 変数は終了する時 にNothing を代入して破棄しない と、プログラム終了後もメモリに 残存する。 Dispose メソッドを実行すると、 自動的にフォームのDisposed イ ベントが発生する。 此処で宣言した変数は宣言したプ ロシージャを抜けると、自動的に 破棄される。 複数のトリガでイベントが発生す る様に、イベントハンドラを追加 して居る。
' データの抽出 SQL = SetSQL( ) Rs.Open( SQL, Cn ) If Rs.RecordCount > 0 Then TBL = SetWord C = 2 Do Until Rs.EOF For I = 0 To 4 TBL.Cell( C, I + 1 ).Select( ) If I = 3 Then
Wd.Selection.TypeText( Format( Val( Rs.Fields( I ).Value & "" ), "##,###" )) ElseIf I = 4 Then
Wd.Selection.TypeText( Format( CDate( Rs.Fields( I ).Value & "" ), "yyyy/mm/dd" )) Else
Wd.Selection.TypeText( Rs.Fields( I ).Value & "" ) End If
Next I C = C + 1 Rs.MoveNext( ) Loop
If sender.Equals( btnPreview ) Then Wd.Visible = True
Wd.PrintPreview = True Try
Do While Dc.ActiveWindow.View.Type = Word.WdViewType.wdPrintPreview ' 値:4 Application.DoEvents( )
Loop
Catch ex As Exception
MsgBox( ex.Message, MsgBoxStyle.Information, "例外発生" ): Rs.Close( ): Exit Sub End Try Wd.Visible = False Else Wd.PrintOut( ) End If Else MsgBox( "抽出データは有りません!", MsgBoxStyle.Information, "結果" ) Rs.Close( ): Exit Sub
End If Rs.Close( ) End Sub ' SQL を生成するジェネラルプロシージャ(自作メソッド) Private Function SetSQL( ) As String
Dim W As String Dim S As String = "" Dim P1, P2 As String 数値型と日付型のデータは、書式 を設定して出力して居る。Format 関数は、Visual Basic 特有の関数 で有る。 呼出先の関数(自作メソッド)内 で生成されたTable オブジェクト を、戻り値と仕て、受け取る。 MoveNext メソッドは、レコード セット内でカレントレコードを1 行後に進めるメソッドで有る。 プレビュー画面を表示するには PrintPreview プロパティを True に設定する。 直接印刷するには PrintOut メソ ッドを使用する。 プレビュー画面が閉じられた事を 例外処理で検知して居る。 レコードセットが開いて居る場合 一旦閉じないと、再オープンした 時にエラーが発生する。 Function プロシージャは、戻り値 を返すプロシージャで有る。此の 場合は、文字列型の戻り値を返す。
' 条件節格納用文字列の初期化 W = ""
' 条件(タイトル)の設定【文字列データは ' でクォートする】 If Not txtTitle.Text = "" Then
S = txtTitle.Text
If radMethod1.Checked Then S = "%" & S & "%"
ElseIf radMethod2.Checked Then S = S & "%"
ElseIf radMethod3.Checked Then S = "%" & S
End If
If InStr( S, "%" ) > 0 Then
W = "タイトル LIKE '" & S & "'" Else W = "タイトル='" & S & "'" End If End If ' 条件(価格)の設定【数値型データはクォートしない】 P1 = txtPrice1.Text : P2 = txtPrice2.Text If Not P1 = "" Then If Not P2 = "" Then
S = "価格>=" & P1 & " AND 価格<=" & P2 Else
S = "価格>=" & P1 End If
If W = "" Then W = S Else W = W & " AND " & S ElseIf Not P2 = "" Then
S = "価格<=" & P2
If W = "" Then W = S Else W = W & " AND " & S End If ' 条件(購入日)の設定【日付型データは # でクォートする】 P1 = txtDate1.Text : P2 = txtDate2.Text If Not P1 = "" Then If Not P2 = "" Then
S = "購入日>=#" & P1 & "# AND 購入日<=#" & P2 & "#" Else
S = "購入日>=#" & P1 & "#" End If
If W = "" Then W = S Else W = W & " AND " & S ElseIf Not P2 = "" Then
S = "購入日<=#" & P2 & "#"
If W = "" Then W = S Else W = W & " AND " & S End If ADOBD の SQL でワイルドカー ドの表記は、*では無く、%で有る 事に注意を要する。 ワイルドカードとの比較を行う場 合の演算子は、=では無く、LIKE で有る事に注意を要する。 両方の価格欄に入力が為されて居 る時は、上限と下限が指定された 物と看做す。 左側の価格欄而巳の場合は、下限 が指定された物と看做す。 右側の価格欄而巳の場合は、上限 が指定された物と看做す。 Date 型の値をクォートする場合 クォーテーションでも良いが、一 般に、シャープを使用する。 上限と下限の指定に付いては、価 格の場合と同様に処理する。 If 文を 1 行で記述する場合は、末 尾にEnd If は付けない。
' 条件(カテゴリ)の設定【文字列データは ' でクォートする】 If Not cboCate.SelectedIndex < 0 Then
S = "カテゴリ名='" & cboCate.SelectedItem.ToString & "'" If W = "" Then W = S Else W = W & " AND " & S End If
' 条件(著者)の設定【文字列データは ' でクォートする】 If Not cboWriter.SelectedIndex < 0 Then
S = "著者名='" & cboWriter.SelectedItem.ToString & "'" If W = "" Then W = S Else W = W & " AND " & S End If
' SQL 文の設定
S = "SELECT 本.タイトル,著者.著者名,カテゴリ.カテゴリ名,本.価格,本.購入日 " & _ "FROM 本,カテゴリ,著者 " & _
"WHERE 本.カテゴリ ID=カテゴリ.ID AND 本.著者 ID=著者.ID" If Not W = "" Then
S = S & " AND " & W End If
S &= " ORDER BY 本.ID;" ' 戻り値を設定して復帰 Return S End Function ' Word の表を生成するジェネラルプロシージャ(自作メソッド) Private Function SetWord( ) As Word.Table
Dim TBL As Word.Table Dim S As Integer Dim E As Integer ' タイトルの表示 Wd.Selection.Font.Size = 12 Wd.Selection.Font.Bold = True Wd.Selection.TypeText( "書籍データベース" ) Wd.Selection.Font.Size = 10.5 Wd.Selection.Font.Bold = False Wd.Selection.TypeParagraph( ) ' 表の作成 S = WD.Selection.Range.Start E = WD.Selection.Range.End
TBL = DC.Tables.Add( DC.Range( S, E ), Rs.RecordCount + 1, 5 ) TBL.Rows.LeftIndent = Wd.MillimetersToPoints( 3 )
' 各列の設定
For Each Cl As Word.Column In TBL.Columns Select Case Cl.Index
Function プロシージャは、戻り値 を返すプロシージャで有る。此の 場合は、Word の Table を返す。 Return は、呼出元に復帰するメソ ッドで、Function プロシージャの 場合は、戻り値を設定する事が出 来る。 ORDER BY 句では、ソートに使 用するフィールドを指定する。 此のプロシージャでは、様々な書 式を設定して、Word の段落と表 を作成して居る。 Word で表を作成する事は、余り 無いと思うが、Word オブジェク トの使用法を色々と試して観ると 謂う事で、取り上げた。 For Each は、コレクション内の各 要素を1 個宛取り出すループ処理 で有る。
Case 1, 2 Cl.Width = Wd.MillimetersToPoints( 40 ) Case 3 Cl.Width = Wd.MillimetersToPoints( 30 ) Case 4 Cl.Width = Wd.MillimetersToPoints( 20 ) Cl.Select( ) Wd.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight ' TBL.Columns( 4 ).Select( ) ' Wd.Selection.ParagraphFormat.Alignment = 2 ' wdAlignParagraphRight Case 5 Cl.Width = Wd.MillimetersToPoints( 25 ) End Select Next
' TBL.Columns( 1 ).Width = Wd.MillimetersToPoints( 35 ) ' TBL.Columns( 2 ).Width = WD.MillimetersToPoints( 35 ) ' TBL.Columns( 3 ).Width = WD.MillimetersToPoints( 30 ) ' TBL.Columns( 4 ).Width = WD.MillimetersToPoints( 15 ) ' TBL.Columns( 5 ).Width = WD.MillimetersToPoints( 22 )
' タイトル行の設定
For Each Rw As Word.Row In TBL.Rows If Rw.Index = 1 Then Rw.Select( ) Wd.Selection.Shading.Texture = Word.WdTextureIndex.wdTextureSolid ' 値:1000 Wd.Selection.Font.Bold = True Wd.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter ' 値:1 End If Next ' TBL.Rows( 1 ).Select( ) ' Wd.Selection.Shading.Texture = 1000 ' wdTextureSolid ' WD.Selection.Font.Bold = True ' Wd.Selection.ParagraphFormat.Alignment = 1 ' wdAlignParagraphCenter TBL.Cell( 1, 1 ).Select( ) : Wd.Selection.TypeText( "タイトル" )
TBL.Cell( 1, 2 ).Select( ) : WD.Selection.TypeText( "著者名" ) TBL.Cell( 1, 3 ).Select( ) : WD.Selection.TypeText( "カテゴリ名" ) TBL.Cell( 1, 4 ).Select( ) : WD.Selection.TypeText( "価格" ) TBL.Cell( 1, 5 ).Select( ) : WD.Selection.TypeText( "購入日" ) Return TBL End Function End Class Return は、呼出元に復帰するメソ ッドで、Function プロシージャの 場合は、戻り値を設定する事が出 来る。 此のプロシージャ内でコメントア ウトして居る部分は、VB 6.0 では 正常に設定されるが、VB 2005 で は、設定出来ない物で有る。
WORD の Table オブジェクトの Add メソッド 文書に新しい表を追加するプロパティ Object.Add 範囲, 行数, 列数 [, 自動調整 オブジェクトにはWord の Table オブジェクトを指定する。 第1引数で、表を追加する範囲をRange オブジェクトで指定する。 第2引数で、表に含める行数を指定する。 第3引数で、表に含める列数を指定する。 第4引数で、セルの大きさを、内容に合わせて自動調整するか指定する。 wdWord8TableBehavior:自動調整を無効にする(既定値)。 wdWord9TableBehavior:自動調整を有効にする。 第5引数で、表のサイズを変更する為の自動調整の規則を指定する。
WORD の Table オブジェクトの Columns プロパティ
表内の総ての列を表すColumns コレクションを取得するプロパティ
Object.Columns
オブジェクトにはWord の Table オブジェクトを指定する。
Cplumns コレクションでは、Columns(index) を使用して各 Column オブジェクトを取得する。引数
には、インデックス番号を指定する。インデックス番号は、Columns コレクションでの左から右に数え
た列の位置を表し、先頭列は1 と成る。
此のプロパティに依り取得したColumns オブジェクトの Width プロパティを使用して、各列の幅を設 定する事が出来る。
WORD の Table オブジェクトの Rows プロパティ
表内の総ての行を表すRows コレクションを取得するプロパティ
Object.Rows
オブジェクトにはWord の Table オブジェクトを指定する。
Rows コレクションでは、Rows(index) を使用して各 Row オブジェクトを取得する。引数には、インデ ックス番号を指定する。インデックス番号は、Rows コレクションでの上から下に数えた行の位置を表 し、先頭行は1 と成る。 此のプロパティに依り取得したRow オブジェクトの LeftIndent プロパティを使用して、左余白から指 定した行の左端迄の間隔をポイント単位で設定する事が出来る。 機 能 書 式 解 説 機 能 書 式 解 説 機 能 書 式 解 説
WORD の Selection オブジェクトの TypeText メソッド 指定された文字列を挿入するメソッド Object.TypeText 文字列 オブジェクトにはWord の Colection オブジェクトを指定する。 ReplaceSelection プロパティの値が True で有る場合、選択部分は引数で指定された文字列で置き換え られる。亦、ReplaceSelection プロパティの値が False で有る場合、指定された文字列は選択範囲の前 に挿入される。
WORD の Selection オブジェクトの TypeParagraph メソッド
新しい空白の段落を挿入するメソッド Object.TypeParagraph オブジェクトにはWord の Colection オブジェクトを指定する。 選択範囲が解除されて居ない場合は、選択部分を新しい段落で置き換える。選択範囲の内容を削除しな いで新しい段落を挿入する場合は、InsertParagraphAfter メソッド、又は、InsertParagraphBefore メソッドを使用する。 ※ 此のメソッドは、Enter キーの機能と対応して居る。 猶、Type~メソッドには、選択範囲が解除されて居る場合は、カーソル位置の直前の文字を削除し、選 択範囲が解除されて居ない場合は、選択部分を削除するTypeBackspace メソッドも用意されて居る(此 のメソッドはBackSpace キーの機能と対応して居る)。
WORD の Selection オブジェクトの Range プロパティ
オブジェクトに含まれる文書の一部を示すRange オブジェクトを取得するプロパティ
Object.Range
オブジェクトにはWord の Selection オブジェクトを指定する。
此のプロパティに依り取得したRange オブジェクトの Start プロパティと End プロパティを使用して Table オブジェクトの Add メソッドで表を追加する範囲を指定する Range オブジェクトを取得する事 が出来る。 Selection、Range、及び、Bookmark オブジェクトには、開始位置と終了位置が有る。開始位置とは、 ストーリーの先頭に最も近い文字の位置を指し、Start プロパティは、ストーリーの先頭を基準に開始 位置を取得する。文字の位置を示す値は、メインテキストストーリーの先頭から始まり、最初の値は 0 で有る。 機 能 書 式 解 説 機 能 書 式 解 説 機 能 書 式 解 説
WORD の Selection オブジェクトの Font プロパティ 指定されたオブジェクトの文字書式を表すFont オブジェクトを取得するプロパティ Object.Font オブジェクトにはWord の Colection オブジェクトを指定する。 此のプロパティに依り取得したFont オブジェクトの各種プロパティを使用して、指定されたオブジェ クトの文字書式を設定する事が出来る。
Font オブジェクトの代表的なプロパティには、下記の物が有る(True か False で指定)。
プロパティ 解説 プロパティ 解説 Bold 太字の設定 Color 色の設定 DoubleStrikeThrough 二重取り消し線の設定 Emboss 浮き出し文字の設定 EmphasisMark 傍点の設定 Italic 斜体の設定 Name フォント名の設定 Outline 中抜き文字の設定 Shadow 影付き文字の設定 Size フォントサイズの設定 StrikeThrough 取り消し線の設定 Subscript 下付き文字の設定 Superscript 上付き文字の設定 Underline 下線の種類を設定 UnderlineColor 下線の色を設定 猶、選択した段落や表のセルの網掛け書式を参照するShading オブジェクトを取得する Shading プロ パティも用意されて居る。
WORD の Selection オブジェクトの ParagraphFormat プロパティ
段落設定を表すParagraphFormat オブジェクトを取得するプロパティ Object. ParagraphFormat オブジェクトにはWord の Colection オブジェクトを指定する。 此のプロパティに依り取得したParagraphFormat オブジェクトの各種プロパティを使用して、指定さ れたオブジェクトの段落書式を設定する事が出来る。 ParagraphFormat オブジェクトの代表的なプロパティには、下記の物が有る。 プロパティ 解説 Alignment 配置の設定 AutoAdjustRightIndent 右インデント幅の自動調整の設定 FirstLineIndent 段落の最初の行のインデント幅の設定 Hyphenation 自動ハイフネーションの設定 LeftIndent(RightIndent) 左(右)インデント幅の設定 LineSpacing 行間の設定 WordWrap ワードラップの設定 機 能 書 式 解 説 機 能 書 式 解 説
WORD の Application オブジェクトの PrintPreview プロパティ 印刷プレビュー(印刷時のイメージ)の表示を設定するプロパティ Object.PrintPreview = 値 オブジェクトにはWord の Application オブジェクトを指定する。 値には、ブール型(Boolean)の値を指定する。True を設定すると、表示モードは、印刷プレビューに 成る。値の取得と設定が可能で有る。 猶、Document オブジェクトの PrintPreview メソッドを使用して、表示モードを、印刷プレビューに 変更する事も可能で有る。
WORD の Document オブジェクトの PrintOut メソッド
指定された文書の全体、又は、一部を印刷するメソッド Object.PrintOut オブジェクトには通常Word の Document オブジェクトを指定する。 下記の引数を指定する事も出来る(孰れも、省略可能)。 第1引数で、バックグラウンドで印刷するか指定する(True でバックグラウンド印刷)。 第2引数で、追加モードでファイルに出力するか指定する(True で追加、False で上書)。 第3引数で、出力するページの範囲を指定する(WdPrintOutRange クラスの定数で指定) 第4引数で、出力ファイル名を指定する(第2引数で、追加か上書の指定可)。 第5引数で、開始ページ番号を指定する(第3引数にwdPrintFromTo を設定した場合) 第6引数で、終了ページ番号を指定する(第3引数にwdPrintFromTo を設定した場合) 第7引数で、印刷される項目を指定する(WdPrintOutItem クラスの定数で指定) 第8引数で、印刷部数を指定する。 第9引数で、ページ番号やページ範囲をカンマで区切って指定する(例えば、"2,6-10" )。 第10引数で、印刷するページの種類を指定する(WdPrintOutPages クラスの定数で指定)。 第11引数で、ファイルに出力するか指定する(True でファイル出力)。 第12引数で、複数の部を印刷する場合に部単位で印刷するか指定する(True で部単位)。 第13引数で、印刷する文書のパスとファイル名を指定する(Application オブジェクトに而巳適用)。 第14引数で、此の引数は、Microsoft Office 98 Macintosh Edition で而巳使用可能で有る。
第15引数で、手動で両面印刷するか指定する(True で手動両面印刷)。 第16引数で、1ページ上の水平方向に含めるページの数を指定する(N アップ時に指定)。 第17引数で、1ページ上の垂直方向に含めるページの数を指定する(N アップ時に指定)。 第18引数で、印刷されるページの横幅の拡大・縮小率をtwip 単位で指定する。 第19引数で、印刷されるページの縦幅の拡大・縮小率をtwip 単位で指定する。 Preview メソッドの場合とは異なり、此のメソッドを実行する時、必ずしも Word オブジェクトを表示 する必要は無い。即ち、非表示に仕て、Word オブジェクトを、バックグラウンドで利用する事が可能 で有る。 機 能 書 式 解 説 機 能 書 式 解 説
WORD の Document オブジェクトの ActiveWindow プロパティ 作業中のウィンドウを表すWindow オブジェクトを取得するプロパティ Object.ActiveWindow 現在開かれて居るウィンドウの種類や状態を取得する為に使用する。 開かれたウィンドウが無い場合、エラーが発生する。値の取得而巳が可能で有る。 此のプロパティに依り取得したWindow オブジェクトの View プロパティを使用して、指定したウィン ドウやウィンドウ枠の表示を表すView オブジェクトを取得する事が出来る。 亦、View オブジェクトの type プロパティを使用して、表示モードの設定と取得を行う事が出来る。使 用 出 来 る 定 数 は 、WdViewType ク ラ ス の wdMasterView 、 wdNormalView 、 wdOutlineView 、 wdPrintPreview、wdPrintView、wdWebView の孰れかで有る。
WORD の Document オブジェクトの Close メソッド
指定した文書を閉じるメソッド Object.Close 保存方法, 保存形式 オブジェクトにはWord の Document オブジェクトを指定する。 第1引数で、保存方法を指定する(下記のWdSaveOptions クラスの定数を指定)。 wdDoNotSaveChanges :変更点を保存せずに閉じる。 wdPromptToSaveChanges :変更点が有る場合は、確認のダイアログを表示する。 wdSaveChanges :変更点が有る場合は、保存して閉じる。 第2引数で、保存形式を指定する(下記のWdOriginalDocumentFormat クラスの定数を指定)。 wdOriginalFormat、wdPromptUser、wdWordDocument の孰れか 第3引数で、文書の回覧を指定する(True で文書の回覧)。 注意:此のメソッドを用いてWord を正しく終了しない場合、例えば、エラー等が発生し実行が途中で 中断された様な場合には、Word は、終了しないで、メモリに残存した儘と成る。此れを何度も繰り返 すと、メモリ(リソース)不足と成り、システムがフリーズする事が有る。特に、Word を非表示に仕 て居る場合は、タスクバーにも表示されない為、注意を要する。此の様な場合には、Ctrl+Alt+Delete で『プログラムの強制終了』ダイアログボックスを開き、Word が残存して居ないか確認し、残存して 居れば終了する。
参考:Excel を終了するには、上記の Close メソッドの他に、Quit メソッドを使用する方法も有る。両 者の違いは、Quit メソッドが Application オブジェクトを対象に仕て居るのに対し、Close メソッドが Documents コレクション、又は、Document オブジェクトを対象に仕て居る点で有る。其の為、Quit メソッドは、ワードを終了し、Close メソッドは、ドキュメントを閉じると謂うのが、夫々れのメソッ ドの機能で有ると謂える。猶、Quit メソッドを用いた場合でも、上記の第1~3引数と同じ引数を指定 する事が出来る。 機 能 書 式 解 説 機 能 書 式 解 説