VB実用⑰ 印刷Ⅶ(Word)

Similar documents
VB実用⑯ 印刷Ⅵ(Excel)

ルーレットプログラム

VB実用⑦ エクセル操作Ⅰ

データベース1

ブロック パニック

データベースⅠ

データアダプタ概要

ファイル操作

データベースⅡ

データベース1

VB.NET解説

グラフィックス

ファイル操作-インターネットキャッシュ

データベースⅡ

相性占いプログラム

DAOの利用

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

ブロック崩し風テニス

mySQLの利用

ICONファイルフォーマット

VB実用⑩ エクセル操作Ⅳ

Userコントロール

データベースⅠ

インベーダープログラム

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

万年暦プログラム

3D回転体プログラム

回文作成支援プログラム

目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)...

エクセルのプロパティ

プロセス間通信

占領双六ゲーム

PowerPoint プレゼンテーション

回文作成支援プログラム

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

VB実用Ⅲ⑩ フリーデータベースⅡ

チャットプログラム

VB.NET解説

VB実用⑱ 印刷Ⅷ(Accessに依る印刷)

倉庫番

正規表現応用

VB実用⑬ 印刷Ⅲ(PrintFormメソッド)

VB実用⑧ エクセル操作Ⅱ

ListViewコントロール

VB実用③ アクセス操作Ⅰ

相性占いプログラム

NotifyIconコントロール

データベースⅢ

回文作成支援プログラム

ハッシュテーブル

構造体

ドライブは安全運転で in 滋賀♪

D:\Documents\Visual Studio 2015\Projects\MyHomePage 用サンプル \ExcelAndWord\ExcelAndWord\MainForm.cs 1 /* */ Excel や Word とやりとりする ~9,20 仕様 Excel

VB実用Ⅲ⑩ フリーデータベースⅡ

モグラ叩きプログラム

ExcelVBA

sinfI2005_VBA.doc

ファイル操作-バイナリファイル

データベース1

画像閲覧プログラム


PowerPoint プレゼンテーション

プラグイン

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 文字列 文字列リテラル プログラムの中で文字列を表す方法は幾つか有るが 基本的な方法は下記の 2 種で有る 対象と成る文字の集まりをダブルクオーテーション ( " ) で囲うか シングルクオーテーション ( ' ) で囲う PYTHON3 "

相性占いプログラム

GUIプログラムⅡ

回文作成支援プログラム

ウィンドウ操作 応用

Prog2_12th

MS Office オートメーション

ファイル監視

PowerPoint プレゼンテーション

バスケットボール

アプリケーション

1セル範囲 A13:E196 を選択し メニューの データ - 並べ替え をクリック 並べ替え ダイアログボックスで 最優先されるキー から 年代 を選択し OK をクリック ( セル範囲 A13:E196 のデータが 年代 で並び替えられたことを確認する ) 2セル範囲 A13:E196 を選択し

VB実用⑨ エクセル操作Ⅲ

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 関数とメソッド 関数とメソッド Python には関数 (function) とメソッド (method) が有る モジュール内に def で定義されて居る物が関数 クラス内に def で定義されて居る物がメソッドに成る ( 正確にはクラスが

Microsoft Word - VB.doc

PowerPoint プレゼンテーション

With sqlda sqlda に SelectCommand を追加.SelectCommand = New MySqlCommand() With.SelectCommand.CommandType = CommandType.Text.CommandText = "select * from

GUIプログラムⅣ

Prog2_15th

Section1_入力用テンプレートの作成

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

Microsoft Word A02

MS Office オートメーション

問題 1 次の文章は Access データベース およびデータベースの概要について述べたものである にあてはまる適切なものを解答群 { } より選び その記号で答えよ 設問 1. Microsoft Access 2007 データベースのテーブルでは 表す としてデータを { ア. レコードを列 フ

Microsoft Word -

VFD256 サンプルプログラム

データベースアクセス

グラフィックス 目次

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

Microsoft Excel操作

プレポスト【問題】

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O)

地域ポータルサイト「こむねっと ひろしま」

Microsoft Word _VBAProg1.docx

エクセル詳細 アドイン

Excel2013基礎 数式と表編集

Transcription:

印刷 Ⅵ VB 2005 6 プログラムの概要 事務処理に於いて 集計結果等を印刷して 確認等を行う事も多い為 ペーパーレスオフィスが推奨される昨今に於いても 矢張り印刷に関する技術は必要で有る Visual Basic から印刷を行う方法は.NET 以降 PrintDocument オブジェクトを使用する方法が 標準と仕て一般的で有るが Professional 版等では ReportView や CrystalReport を利用する事も可能で有る 亦 Power Packs 2 では視覚的確認が容易な FormPrint がを向上させて復活して居る 此処では Access のデータを 条件を設定して抽出し Word ドキュメントに 抽出したレコードデータを 表形式で吐き出し Word の印刷を使用して印刷を行う 今回の課題項目 System.Data.OleDb 名前空間 (Access データベースの操作 ) データベースの接続 (OleDbConnection オブジェクト ) データベースの操作 (OleDbDataAdapter オブジェクト ) テーブルデータの格納 (DataSet オブジェクト ) Word オブジェクト (Application Document Table オブジェクト ) データとの設定 (Selection オブジェクト Type メソッド ) レポートのプレビュー (Application オブジェクト PrintPreview プロパティ ) レポートの印刷 (Application オブジェクト PrintOut メソッド ) 今回の重点項目 Word オブジェクト (Application Document Table オブジェクト ) データとの設定 (Selection オブジェクト Type メソッド ) レポートのプレビュー (Application オブジェクト PrintPreview プロパティ ) レポートの印刷 (Application オブジェクト PrintOut メソッド ) -1-

~ オブジェクト プロパティ一覧 グループボックス 1 テキストボックス1 テキストボックス2 テキストボックス3 テキストボックス 4 テキストボックス 5 ラベル 1 ラベル 7 グループボックス 2 コンボボックス 1 コンボボックス 2 ラジオボタン 1~ ラジオボタン 4 ボタン 1 ボタン 2 ボタン 3 コントロールの種類 プロパティ プロパティの設定値 フォーム name WordPrint FormBorderStyle FixedSingle StartPosition CenterScreen WORD プリント グループボックス1 name grpsearch 検索条件 グループボックス2 name grpmethod タイトル項目の検索方法 ラベル1~7 name lblitem1 ~ lblitem5 AutoSize False Font MS 明朝 太字 10 lblitem1: タイトル lblitem2: 価格 lblitem3: 購入日 lblitem4: カテゴリ ID lblitem5: 著者 ID lblitem6:~ lblitem7:~ Align MiddleRight -2-

テキストボックス1 name txttitle 空白 テキストボックス2 name txtprice1 空白 Align Right テキストボックス3 name txtprice2 空白 Align Right テキストボックス4 name txtdate1 空白 テキストボックス5 name txtdate2 空白 コンボボックス1 name cbocate 空白 コンボボックス2 name cbowriter 空白 ラジオボタン1~4 name radmethod1 ~ radmethod4 Checked radmethod1:true radmethod1: 部分一致 radmethod2: 前方一致 radmethod3: 後方一致 radmethod4: 完全一致 コマンドボタン1 name btnpreview Font MS 明朝 太字 12 プレビュー コマンドボタン2 name btnexecute Font MS 明朝 太字 12 印刷 コマンドボタン3 name btnfinish Font MS 明朝 太字 12 終了 参照設定事前に 下記のライブラリを参照設定して置く ActiveX Data Object x.x Library Microsoft Word x.x Object Library x.x はバージョンに依り異なる -3-

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 &= " " ' コネクションの確立 Object 変数は New キーワードを 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;" CursorLocation プロパティの設 Cn.Open( ) 定は Access 2000 以降では必須 ' コンボボックスへフィールド名の設定 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 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 Rs.Close( ) -4- プロシージャ内でしか値の参照と 設定を行う事が出来ない RecordCount プロパティには 抽 出したレコード数が格納される為 其の数丈のループで 総てのレコ ードを処理する事が出来る null データを文字列型と仕て操作 したり 数値化するとエラーが発 生する為 ヌルストリングを連結 して防いで居る MoveNext メソッドは レコード セット内でカレントレコードを 1 行後に進めるメソッドで有る

' ワードの設定 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 ) Dc.Content.Font.Name = "MS 明朝 " Wd.Visible = True End Sub CreateObject ( "Word.Application" ) でもオブジェクトを生成する事が出来る 指定したファイルが存在しない場 合は 新たに作成し 名前を付け て保存する デバック後に Word 文書への書 込状況を隠し度い場合は 此の行 のコメントアウトする ' フォームが破棄された時の処理 Private Sub WordPrint_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Disposed ' オブジェクトの解放 Cn.Close( ) Rs = Nothing Cn = Nothing 此等の Object 変数は終了する時に 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 Dispose メソッドを実行すると 自動的にフォームの Disposed イ ベントが発生する ' ボタン ( プレビュー 印刷 ) がクリックされた時の処理 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 -5- 複数のトリガでイベントが発生する様に イベントハンドラを追加して居る 此処で宣言した変数は宣言したプロシージャを抜けると 自動的に破棄される

' データの抽出呼出先の関数 ( 自作メソッド ) 内 SQL = SetSQL( ) で生成された Table オブジェクト Rs.Open( SQL, Cn ) を 戻り値と仕て 受け取る If Rs.RecordCount > 0 Then TBL = SetWord C = 2 数値型と日付型のデータは Do Until Rs.EOF を設定して出力して居る Format For I = 0 To 4 関数は Visual Basic 特有の関数 TBL.Cell( C, I + 1 ).Select( ) で有る If I = 3 Then Wd.Selection.Type( Format( Val( Rs.Fields( I ).Value & "" ), "##,###" )) ElseIf I = 4 Then Wd.Selection.Type( Format( CDate( Rs.Fields( I ).Value & "" ), "yyyy/mm/dd" )) Else Wd.Selection.Type( Rs.Fields( I ).Value & "" ) MoveNext メソッドは レコード Next I セット内でカレントレコードを1 C = C + 1 行後に進めるメソッドで有る Rs.MoveNext( ) Loop If sender.equals( btnpreview ) Then プレビュー画面を表示するには Wd.Visible = True PrintPreview プロパティを 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 直接印刷するには PrintOut メソ Else ッドを使用する Wd.PrintOut( ) Else MsgBox( " 抽出データは有りません!", MsgBoxStyle.Information, " 結果 " ) Rs.Close( ): Exit Sub レコードセットが開いて居る場合 一旦閉じないと 再オープンした Rs.Close( ) 時にエラーが発生する End Sub ' SQL を生成するジェネラルプロシージャ ( 自作メソッド ) Private Function SetSQL( ) As String Dim W As String Dim S As String = "" Dim P1, P2 As String Function プロシージャは 戻り値 を返すプロシージャで有る 此の 場合は 文字列型の戻り値を返す -6-

' 条件節格納用文字列の初期化 W = "" ' 条件 ( タイトル ) の設定 文字列データは ' でクォートする If Not txttitle. = "" Then S = txttitle. If radmethod1.checked Then S = "%" & S & "%" ElseIf radmethod2.checked Then S = S & "%" ElseIf radmethod3.checked Then S = "%" & S If InStr( S, "%" ) > 0 Then W = " タイトル LIKE '" & S & "'" Else W = " タイトル ='" & S & "'" ADOBD の SQL でワイルドカードの表記は * では無く % で有る事に注意を要する ワイルドカードとの比較を行う場合の演算子は = では無く LIKE で有る事に注意を要する ' 条件 ( 価格 ) の設定 数値型データはクォートしない P1 = txtprice1. : P2 = txtprice2. If Not P1 = "" Then If Not P2 = "" Then S = " 価格 >=" & P1 & " AND 価格 <=" & P2 Else S = " 価格 >=" & P1 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 Date 型の値をクォートする場合 ' 条件 ( 購入日 ) の設定 日付型データは # でクォートする クォーテーションでも良いが 一 P1 = txtdate1. : P2 = txtdate2. 般に シャープを使用する If Not P1 = "" Then If Not P2 = "" Then S = " 購入日 >=#" & P1 & "# AND 購入日 <=#" & P2 & "#" Else S = " 購入日 >=#" & P1 & "#" 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 -7- 両方の価格欄に入力が為されて居 る時は 上限と下限が指定された 物と看做す 左側の価格欄而巳の場合は 下限 が指定された物と看做す 右側の価格欄而巳の場合は 上限が指定された物と看做す 上限と下限の指定に付いては 価 格の場合と同様に処理する If 文を 1 行で記述する場合は 末尾に は付けない

' 条件 ( カテゴリ ) の設定 文字列データは ' でクォートする If Not cbocate.selectedindex < 0 Then S = " カテゴリ名 ='" & cbocate.selecteditem.tostring & "'" If W = "" Then W = S Else W = W & " AND " & S ' 条件 ( 著者 ) の設定 文字列データは ' でクォートする If Not cbowriter.selectedindex < 0 Then S = " 著者名 ='" & cbowriter.selecteditem.tostring & "'" If W = "" Then W = S Else W = W & " AND " & S ' SQL 文の設定 S = "SELECT 本. タイトル, 著者. 著者名, カテゴリ. カテゴリ名, 本. 価格, 本. 購入日 " & _ "FROM 本, カテゴリ, 著者 " & _ "WHERE 本. カテゴリ ID= カテゴリ.ID AND 本. 著者 ID= 著者.ID" If Not W = "" Then ORDER BY 句では ソートに使 S = S & " AND " & W 用するフィールドを指定する S &= " ORDER BY 本.ID;" Return は 呼出元に復帰するメソ ' 戻り値を設定して復帰 Return S End Function ッドで Function プロシージャの 場合は 戻り値を設定する事が出 来る ' Word の表を生成するジェネラルプロシージャ ( 自作メソッド ) Private Function SetWord( ) As Word.Table Dim TBL As Word.Table Dim S As Integer Dim E As Integer Function プロシージャは 戻り値 を返すプロシージャで有る 此の 場合は Word の Table を返す ' タイトルの表示 Wd.Selection.Font.Size = 12 Wd.Selection.Font.Bold = True Wd.Selection.Type( " 書籍データベース " ) 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 ) 此のプロシージャでは 様々な書 式を設定して Word の段落と表 を作成して居る Word で表を作成する事は 余り 無いと思うが Word オブジェク トの使用法を色々と試して観ると 謂う事で 取り上げた ' 各列の設定 For Each Cl As Word.Column In TBL.Columns Select Case Cl.Index For Each は コレクション内の各 要素を 1 個宛取り出すループ処理 で有る -8-

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 ) ウトして居る部分は VB 6.0 では ' TBL.Columns( 4 ).Width = WD.MillimetersToPoints( 15 ) 正常に設定されるが VB 2005 で ' 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.ure = Word.WdureIndex.wdureSolid ' 値 :1000 Wd.Selection.Font.Bold = True Wd.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter ' 値 :1 Next ' TBL.Rows( 1 ).Select( ) ' Wd.Selection.Shading.ure = 1000 ' wduresolid ' WD.Selection.Font.Bold = True ' Wd.Selection.ParagraphFormat.Alignment = 1 ' wdalignparagraphcenter TBL.Cell( 1, 1 ).Select( ) : Wd.Selection.Type( " タイトル " ) TBL.Cell( 1, 2 ).Select( ) : WD.Selection.Type( " 著者名 " ) TBL.Cell( 1, 3 ).Select( ) : WD.Selection.Type( " カテゴリ名 " ) TBL.Cell( 1, 4 ).Select( ) : WD.Selection.Type( " 価格 " ) TBL.Cell( 1, 5 ).Select( ) : WD.Selection.Type( " 購入日 " ) Return は 呼出元に復帰するメソ Return TBL End Function End Class ッドで Function プロシージャの 場合は 戻り値を設定する事が出 来る -9-

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 プロパティを使用して 左余白から指定した行の左端迄の間隔をポイント単位で設定する事が出来る -10-

WORD の Selection オブジェクトの Type メソッド 指定された文字列を挿入するメソッド Object.Type 文字列 オブジェクトには 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 で有る -11-

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 配置の設定右インデント幅の自動調整の設定段落の最初の行のインデント幅の設定自動ハイフネーションの設定左 ( 右 ) インデント幅の設定行間の設定ワードラップの設定 -12-

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 オブジェクトを バックグラウンドで利用する事が可能で有る -13-

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 引数と同じ引数を指定する事が出来る -14-