In che modo l'applicazione VBA può utilizzare gli stili incorporati corretti nelle versioni inglese e francese di Windows / Word

StackOverflow https://stackoverflow.com/questions/807327

  •  03-07-2019
  •  | 
  •  

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?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top