Sammanfattning

Med Automation kan du göra nästan allt programmässigt som användaren kan göra manuellt i Microsoft Office Word. Om du har mycket text som du vill ange och formatera kan det kräva mycket kod. Om du kan representera data som en RTF-sträng (Rich Text Format) kan du ofta minska automationskoden. Du kan skapa en RTF-sträng, kopiera RTF-strängen till Urklipp och sedan klistra in RTF-strängen i dokumentet.I den här artikeln beskrivs hur du skapar ett enkelt Visual Basic-exempel som startar Word, skapar ett nytt dokument och lägger till viss formaterad text i dokumentet med hjälp av en inbyggd RTF-sträng.

Mer information

Så här skapar du exempelprojektet:

  1. Starta Visual Basic och skapa sedan ett nytt Standard EXE. Som standard skapas ett formulär som heter Formulär1.

  2. Lägg till en Kommandoknapp i formuläret, dubbelklicka på Kommandoknapp och lägg sedan till följande kod i händelsen Click.

    'sRTF represents the rich-text-formatted string to paste into WordDim sRTF As StringsRTF = "{\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 clipboardDim lSuccess As LongDim lRTF As LongDim hGlobal As LongDim lpString As LonglSuccess = OpenClipboard(Me.hwnd)lRTF = RegisterClipboardFormat("Rich Text Format")lSuccess = EmptyClipboardhGlobal = GlobalAlloc(GMEM_MOVEABLE Or GMEM_DDESHARE, Len(sRTF))lpString = GlobalLock(hGlobal)CopyMemory lpString, ByVal sRTF, Len(sRTF)GlobalUnlock hGlobalSetClipboardData lRTF, hGlobalCloseClipboardGlobalFree hGlobal'Paste into a new Word documentDim oWord As ObjectDim oDoc As ObjectSet oWord = CreateObject("word.application")Set oDoc = oWord.Documents.AddoWord.Selection.PasteoWord.Visible = True
  3. Lägg till följande kod i avsnittet Allmänna deklarationer i formulärmodulen.

    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As LongPrivate Declare Function RegisterClipboardFormat Lib "user32" Alias _    "RegisterClipboardFormatA" (ByVal lpString As String) As LongPrivate Declare Function EmptyClipboard Lib "user32" () As LongPrivate Declare Function CloseClipboard Lib "user32" () As LongPrivate Declare Function SetClipboardData Lib "user32" ( _    ByVal wFormat As Long, ByVal hMem As Long) As LongPrivate Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _    ByVal dwBytes As Long) As LongPrivate 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 LongPrivate Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As LongPrivate Declare Function GlobalFree Lib "kernel32" Alias "GlobalFree" ( _     ByVal hMem As Long) As LongPrivate Const GMEM_DDESHARE = &H2000Private Const GMEM_MOVEABLE = &H2
  4. Tryck på F5 för att köra projektet. Word startar och sedan skapas ett nytt dokument som innehåller formaterad text.

Referenser

Mer information och exempel för att utveckla Office lösningar finns på följande Microsoft-webbplatser:

http://support.microsoft.com/ofd http://msdn.microsoft.com/office

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.