In che modo l'applicazione VBA può utilizzare gli stili incorporati corretti nelle versioni inglese e francese di Windows / Word
Domanda
Ho sviluppato un'applicazione per la generazione di report di Word 2003 che estrae i dati da un database.
La maggior parte dell'organizzazione utilizza versioni inglesi di Windows e Office. Ma molti utenti nel nostro ufficio francese usano le loro versioni locali. Se utilizzo uno degli stili di titolo Intestazione di Word (1-9), la versione francese prevede Titre (1-9).
Nella mia attuale soluzione, l'utente imposta un'opzione Modulo e VBA effettua le seguenti operazioni:
Dim HeadingStyle as String
Dim HeadingLevel as Integer
If ChooseReportFrm.FrenchOpt.Value = True Then
HeadingStyle = "Titre "
Else
HeadingStyle = "Heading "
End If
...
Call InsertText(HeadingStyle & CStr(HeadingLevel))
Vorrei rendere questo processo automatico e completamente trasparente per l'utente. Ho cercato invano un modo indipendente dalla posizione per impostare lo stile corretto, come una costante elencata. Qualcuno ha qualche idea per una soluzione più elegante?
Soluzione
Dai un'occhiata al WdBuiltinStyle
enumerazione .
Quando si assegnano gli stili, è possibile farlo nome locale (che è quello che sembra fare ora), ma puoi anche usare uno dei valori di enumerazione, nel tuo caso impostando lo Style
proprietà WdBuiltinStyle.wdStyleHeading1
farebbe il trucco.
Dim para As Paragraph
Set para = ActiveDocument.Paragraphs(1)
para.Style = WdBuiltinStyle.wdStyleHeading1