Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

vba2003:formattare un testo per word

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

vba2003:formattare un testo per word

Postdi karug64 » 26/12/11 21:58

Salve a tutti.
Da una macro di vba apro un file word e scrivo, servendomi dei segnalibri, dei dati all'interno di una lettera gia' precompilata.

Ora, se scrivo:

Riga2 = "Ubicazione e codice: " + Trim(ActiveWorkbook.Sheets("Word").Range("C1").Value) + " (" + Trim(ActiveWorkbook.Sheets("Word").Range("B2").Value) + ")"
.
.
.
objWord.Selection.Goto What:=-1, Name:="R1"
objWord.Font.Bold = True
objWord.Selection.InsertAfter Riga1

scrivo l'INTERA riga in grassetto.

Ma io vorrei poter scrivere
"Ubicazione e codice: " in normale
Trim(ActiveWorkbook.Sheets("Word").Range("C1").Value) in grassetto
Trim(ActiveWorkbook.Sheets("Word").Range("B2").Value) in normale

C'e' un modo per fare questo senza dover inserire tantissimi segnalibro e spezzare tutte le righe da scrivere ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 580
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: vba2003:formattare un testo per word

Postdi PcBase » 26/12/11 22:59

Ciao

Un esempio per scrivere per intero una lettera...da adattare

Codice: Seleziona tutto
Sub word()
    Dim wordApp As Object
    Set wordApp = CreateObject("Word.Application")
    wordApp.Visible = True
    'Create a New Word Document
    wordApp.Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0
    wordApp.Selection.TypeText Text:="TelePhone Report"
    wordApp.Selection.TypeParagraph
   
    'Enter the date
    wordApp.Selection.TypeText Text:="Received"
    wordApp.Selection.Font.Bold = True
    wordApp.Selection.Font.Size = 16
   
    wordApp.Selection.InsertDateTime DateTimeFormat:=" ddd,MMM dd,yyyy"
    wordApp.Selection.Font.Bold = False
    wordApp.Selection.Font.Size = 12

    wordApp.Selection.TypeParagraph
   
    wordApp.Selection.TypeText Text:="Dear Customer, we are sending you tha amount to pay and his details:"
    wordApp.Selection.TypeParagraph
    ' Va a capo
    wordApp.Selection.TypeText Text:=vbLf & vbCr
   
    wordApp.Selection.TypeText Text:="Thanks,Regards Eircom "
    wordApp.Selection.TypeParagraph
       
    'save Report
    wordApp.ActiveDocument.SaveAs Filename:="Test.doc", FileFormat:=wdFormatDocument
End Sub
Windows xp + Office 2003 Ita
Windows8 Office 2013
PcBase
Utente Senior
 
Post: 129
Iscritto il: 24/02/11 23:26

Re: vba2003:formattare un testo per word

Postdi Anthony47 » 27/12/11 02:57

In alternativa a quanto ha gia' suggerito PcBase (vedi sopra), dovrebbe andare bene qualcosa come
Codice: Seleziona tutto
With objWord.Selection
.Goto What:=-1, Name:="R1" '-1=wdGoToBookmark
.InsertAfter "Primo Blocco"
.Font.Bold = False
spostam = .Move(Unit:=1, Count:=1)  '1=wdCharacter

.InsertAfter "-Secondo Blocco bold-"
.Font.Bold = True
spostam = .Move(Unit:=1, Count:=1) 'Len(objWord.Selection))

.InsertAfter "Terzo Blocco "
.Font.Bold = False
End With

Quindi non calcolerai l' intera riga, ma userai i tre tronconi in successione, al posto dei testi tra virgolette.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "vba2003:formattare un testo per word":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti