首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

Visual C++ 自動化控制 MS Word 完整教學

     編輯:關於VC++

前言

Microsoft Office 全系列提供 OLE Automation 介面,讓 VC++ 可呼叫 Word 列印、資料填入、郵件發送、表格生成、圖表繪製、報表輸出、文件格式轉換、簡繁轉換、拼音/筆畫排序等所有 Word 功能。本文循序漸進引導您掌握核心技術。

核心概念:邏輯物件階層

Word 物件模型呈樹狀結構,理解層次才能正確操作:

Application
├─ Documents (所有文件集合)
│   └─ Document (單一文件)
├─ Templates (範本集合)
│   └─ Template
├─ Windows (視窗集合)
│   └─ Window
│       ├─ Selection (選取範圍)
│       └─ View
└─ Selection (編輯焦點)
    ├─ Font
    ├─ Style
    └─ Range

例如 VBA Application.ActiveDocument.SaveAs "c:\abc.doc" 對應操作鏈:Application → ActiveDocument → SaveAs。

VC++ 專案建立基本步驟 (VC6 為例)

  1. 建立 MFC 專案 (Dialog-based 或 SDI/MDI)。
  2. Ctrl+W 開啟 ClassWizard → Add Class → From a type library。
  3. 選擇 Word 型別程式庫:
    Office 2000: C:\Program Files\Microsoft Office\Office\MSWORD9.OLB
    Office XP/2003: MSWORD.OLB (依版本不同)
  4. 勾選所需類別 (如 _Application, _Document, Documents, Selection 等),或全選。
  5. 專案生成 msword9.h/.cpp 等包裝類別。
  6. 初始化 COM:AfxOleInit() 於 InitInstance,或局部 CoInitialize(NULL)/CoUninitialize()。
  7. 於需呼叫處 #include <atlbase.h> (方便 CComVariant) 並 #include "msword9.h"。

關鍵技巧:用「巨集錄製」反推參數

Word 巨集錄製產生的 VBA 代碼可直接對應 VC++ 參數:

// VBA 巨集
ActiveDocument.SaveAs FileName:="Hello.doc", FileFormat:=wdFormatDocument, _
    LockComments:=False, Password:="", AddToRecentFiles:=True, ...

// VC++ 對應原型
void _Document::SaveAs(VARIANT* FileName, VARIANT* FileFormat, VARIANT* LockComments,
    VARIANT* Password, VARIANT* AddToRecentFiles, VARIANT* WritePassword,
    VARIANT* ReadOnlyRecommended, VARIANT* EmbedTrueTypeFonts,
    VARIANT* SaveNativePictureFormat, VARIANT* SaveFormsData, VARIANT* SaveAsAOCELetter)
  • FileName → VT_BSTR
  • LockComments → VT_BOOL
  • FileFormat := wdFormatDocument → 常數值,用 MsgBox wdFormatDocument 查得為 VT_I4。

六步驟漸進實作範例

  1. Step 1:啟動/關閉 Word,VARIANT 基礎用法。
  2. Step 2:改用 CComVariant 簡化變數處理。
  3. Step 3:建立新文件,傳送文字到 Word。
  4. Step 4:儲存 Word 文件。
  5. Step 5:應用範例 — 漢字筆畫排序。
  6. Step 6:應用範例 — 取得正在使用的 Word 文件內容。

每個步驟皆有詳細註解,原始碼請下載附件。

重要提醒

  • 執行前請關閉防毒軟體即時掃描 (如 KAV),否則干擾 COM 呼叫。
  • 範例為示範核心邏輯,省略錯誤檢查;實務專案請自行加入 HRESULT 判斷與例外處理。

參考資料

Microsoft Office Development with Visual Studio

結語

掌握物件模型、型別程式庫匯入、VARIANT 參數對應、巨集反推技巧,即可自由自動化控制 Word 及全 Office 套件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved