Access Tips by pPoy

  
トップへ←Top    QueryへQuery  FormへForm  ReportへReport  Module(Sub)へSub  Module(Function)へFunction  Excel連携へExcel  Etc.へEtc.  Word連携へWord

Word Access から既存 Word文書を開いて、1行目に見出し項目を挿入し全文書を表に変換する 
(Access2002,Access2003, Word2002,Word2003)
Access から 既存の Word 文書 を操作する方法です。

以下のコードは、既存 Word 文書を開いて表に変換する処理です。
既存文書の1行目に見出し項目を挿入後、表のオートフォーマットを適用します。
修正した Word ファイルは、保存せずに開いたままです。
≪準備≫

Microsoft Word 11.0 Object Library (Word 2003) に参照設定が必要です。
必ずお使いのバージョンを設定してください。

サンプル

C:\Test」 フォルダに、
「フォント名.doc」 という名前の Word ファイルが必要です。

←左のような、
フォント名の一覧ファイルを用意してください。


準備ができたところで、
以下のコードを標準モジュールに貼り付けます。
この頁のTOPへTop
Sub wordConvertToTable()
'既存 Word文書を開いて、1行目に見出し項目を挿入し、
'全文書を表に変換する。保存はしない。
'Microsoft Word 11.0 Object Library (Word 2003)へ
'参照設定が必要 2010/08/01 pPoy
    Dim objWd As Word.Application
    Dim doc As Word.Document
    Dim myRange As Word.Range
    Dim myTable As Word.Table
    
    Dim docPath As String           'Word文書のパス
    Dim docName As String           'Word文書ファイル名
    
    docPath = "C:\Test\"            '★最後に"\"をつける
    docName = "フォント名.doc"      '★
    
    Set objWd = CreateObject("Word.Application")
    objWd.Documents.Open FileName:=docPath & docName
    Set doc = objWd.Documents(docName)
    
    'Word 画面を表示
    objWd.Visible = True
    
    'タイトル入力
    Set myRange = doc.Range(0, 0)
    With myRange
        .InsertParagraph
        .InsertBefore "登録済みフォント一覧"
    End With
    
    '全文書取得後表に変換
    Set myRange = doc.Content
    With myRange
        .Font.Size = 9
        .ConvertToTable _
            Format:=wdTableFormatList1, _
            AutoFitBehavior:=wdAutoFitFixed
    End With

    '表の微調整(センタリング、幅)
    Set myTable = doc.Tables(1)
    With myTable
        .Rows.Alignment = wdAlignRowCenter
        .PreferredWidthType = wdPreferredWidthPercent
        .PreferredWidth = 50    '文書幅の50%に変更
    End With

exit_SUB:
    Set myRange = Nothing: Set myTable = Nothing
    Set objWd = Nothing: Set doc = Nothing
End Sub
この頁のTOPへTop
≪使い方≫

フォームのどこかにコマンドボタンを作成し、そのクリック時イベントから呼び出してください。

  例: Call wordConvertToTable

実行結果

←このような感じで、
文書の一番上に項目行が追加され、
文書が表に変換され、表のオートフォーマットが適用されます。
≪注意≫
  • 同名の Word 文書が開いている場合、一応使用中ファイル警告メッセージがでますが、最終的にエラーとなります。
    ※ エラー処理が無い為

  • 上記のコードにはエラー処理がありません。 適切なエラー処理を追加してください。

  • 修正用ファイルの保存先とファイル名 (★の部分) は、それぞれの環境に合わせて変更してください。

  • 修正されたファイルには、保存処理はしていません。 ファイルが開いたまま、コードが終了します。

  • この文書には、表のオートフォーマットの 「表 (一覧) 1」 書式を適用しています。
    詳しくは、こちら を参照してください。 「ワードの 『表のオートフォーマット』 書式一覧」です。

  • Word VBA を使用して文書を表に変換する処理は、Help の 「ConvertToTable」 を参照してください。
    引数の説明が細かく載っています。


この頁のTOPへTop
【念の為の注意書きです。】
このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。
又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行してください。

☆ 感想をお知らせください (直接ブラウザから送信致します。メールアカウントは不要です。)
  form mail はこちら

Copyright(C) pPoy 2010