概要
Automation を使用すると、Word でユーザーが手動で実行できるほぼすべての操作をプログラムMicrosoft Officeできます。 ただし、多数のテキストを入力して書式設定する場合は、多くのコードが必要になる場合があります。 データをリッチ テキスト形式 (RTF) 文字列として表す場合は、Automation コードを頻繁に減らします。 RTF 文字列を作成し、RTF 文字列をクリップボードにコピーして、RTF 文字列を文書に貼り付けることができます。
この記事では、Word を起動し、新しい文書を作成し、事前に構築された RTF 文字列を使用して書式設定されたテキストを文書に追加する簡単な Visual Basic の例を作成する方法について説明します。詳細情報
サンプル プロジェクトを作成するには、次の手順に従います。
-
新Visual Basicし、新しい Standard EXE を作成します。 既定では、Form1 という名前のフォームが作成されます。
-
フォームに CommandButton を追加し、CommandButton をダブルクリックして、次のコードを Click イベントに追加します。
'sRTF represents the rich-text-formatted string to paste into Word
Dim sRTF As String sRTF = "{\rtf1\ansi\ansicpg1252\deff0\deftab720{\fonttbl" & _ "{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}" & _ "{\f2\froman\fprq2 Times New Roman;}}" & _ "{\colortbl\red0\green0\blue0;\red255\green0\blue0;}" & _ "\deflang1033\horzdoc{\*\fchars }{\*\lchars }" & _ "\pard\plain\f2\fs24 Line 1 of \plain\f2\fs24\cf1" & _ "inserted\plain\f2\fs24 file.\par }" 'Copy the contents of the Rich Text to the clipboard Dim lSuccess As Long Dim lRTF As Long Dim hGlobal As Long Dim lpString As Long lSuccess = OpenClipboard(Me.hwnd) lRTF = RegisterClipboardFormat("Rich Text Format") lSuccess = EmptyClipboard hGlobal = GlobalAlloc(GMEM_MOVEABLE Or GMEM_DDESHARE, Len(sRTF)) lpString = GlobalLock(hGlobal) CopyMemory lpString, ByVal sRTF, Len(sRTF) GlobalUnlock hGlobal SetClipboardData lRTF, hGlobal CloseClipboard GlobalFree hGlobal 'Paste into a new Word document Dim oWord As Object Dim oDoc As Object Set oWord = CreateObject("word.application") Set oDoc = oWord.Documents.Add oWord.Selection.Paste oWord.Visible = True -
Form モジュールの [全般宣言] セクションに次のコードを追加します。
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function RegisterClipboardFormat Lib "user32" Alias _ "RegisterClipboardFormatA" (ByVal lpString As String) As Long Private Declare Function EmptyClipboard Lib "user32" () As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function SetClipboardData Lib "user32" ( _ ByVal wFormat As Long, ByVal hMem As Long) As Long Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _ ByVal dwBytes As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _ ByVal Destination As Long, Source As Any, ByVal Length As Long) Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalFree Lib "kernel32" Alias "GlobalFree" ( _ ByVal hMem As Long) As Long Private Const GMEM_DDESHARE = &H2000 Private Const GMEM_MOVEABLE = &H2 -
F5 キーを押してプロジェクトを実行します。 Word が起動し、書式設定されたテキストを含む新しい文書が作成されます。
参照情報
ソリューションの開発に関する詳細とサンプルについては、Officeの Microsoft Web サイトを参照してください。
http://support.microsoft.com/ofdhttp://msdn.microsoft.com/office