Auteur : Yang Zhongxun Majeure : Développement et application de logiciels informatiques Capacité linguistique : TOFEL633 GRE2140
Email : [email protected]
Dans le développement actuel du système Mis, nous devons parfois télécharger les données du rapport sur la page actuelle sur l'ordinateur local au format d'un document Word. Cette mise en œuvre n'est pas difficile. Mais parfois, nous devons effectuer certains paramètres concernant le format du document Word téléchargé, comme la couleur du titre, la taille de la police, l'espacement des mots, etc. Dans ce cas, nous devons utiliser la fonction macro fournie avec Word.
Par exemple, nous souhaitons afficher le titre de ce rapport au format suivant dans un document Word : police 14 points, gras et centré. Nous devons d’abord enregistrer la macro-commande correspondante dans Word. Ouvrez Word, créez un nouveau document, tapez manuellement une ligne de texte, puis sélectionnez la commande Outils-> Macro-> Enregistrer une nouvelle macro, donnez à la nouvelle macro un nom tel que Macro1 et effectuez les actions ci-dessus (taille 14, gras, centre -aligné), Word enregistre automatiquement ces actions en tant que commandes Vbscript correspondantes. Sélectionnez ensuite Outils->Macro->Macro Command, sélectionnez la macro Macro1 que nous venons de définir et vous pourrez voir son contenu. Dans cet exemple, la macro-commande que nous avons enregistrée est la suivante :
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 'Alignement central
Selection.Font.Bold = wdToggle 'Affichage en gras
Selection.Font.Size = 14 '
Le langage de script de la commande macro étant Vbscript, nous pouvons utiliser l'instruction ci-dessus en VB sans apporter de modifications. De cette façon, nous pouvons écrire le code VB suivant pour réaliser les fonctions dont nous avons besoin. Le code est le suivant :
WdApp.Selection.Font.Bold = wdToggle 'Affichage en gras
WdApp.Selection.Font.Size = police de taille 14 '14
WdApp.Selection.TypeText ("Titre du rapport") 'Titre du rapport
WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter 'Aligner au centre
WdApp.Selection.Font.Bold = wdToggle 'Annuler la mise en gras
De même, si nous souhaitons effectuer un autre traitement sur le document Word, répétez simplement les étapes ci-dessus. Ce qui suit fournit un exemple complet de mon traitement de documents Word :
Fonction privée SaveAsWord (ByRef MyRecord As Recordset, ByVal DocFileName As String, ByRef OutMessage As String) As Integer
'************************************************ * ***********************
'
'Description : Enregistrez les données de l'ensemble de données sous forme de fichier DOC.
'
'paramètre:
'
'Ensemble de données MyRecord
'DocFileName Nom du fichier WORD (pas de chemin, voir la variable d'instance sPath pour le chemin)
'Renvoyer les informations de l'opération OutMessage
'
'Retour : 1 succès -1 échec
'
'************************************************ * ***********************
'Initialiser l'application Word
err.Effacer
En cas d'erreur, GoTo Err_All
Dim WdApp en tant que Word.Application
Set WdApp = CreateObject("Word.Application")
'Insérer des données
Dim colloop As Integer 'Numéro de colonne
Dim rowloop As Integer 'numéro de ligne
Dim colMax As Integer 'Nombre de colonnes
Dim rowMax As Integer 'Nombre de lignes
Dim wdcell As Integer 'largeur
Dim UnitEnd As Integer 'Point final d'interception
Dim UnitName As String 'Nom de l'unité
Dim BbDate As String 'Période du rapport
wdcell=12
colMax = MonEnregistrement.Fields.count
rowMax = MyRecord.RecordCount
WdApp.Documents.Add
'Obtenir l'unité de rapport
UnitEnd = InStr(sBBDetail, "période")
NomUnité = Milieu(sBBDetail, 1, UnitEnd - 2)
BbDate = Mid(sBBDetail, UnitEnd, Len(sBBDetail))
Si MyRecord.Fields.count >= 10 Alors
WdApp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
Autre
WdApp.ActiveDocument.PageSetup.Orientation = wdOrientPortrait
Fin si
'Nom du rapport
WdApp.Selection.Font.Bold = wdToggle
WdApp.Selection.Font.Size = 14
WdApp.Selection.TypeText (sbbmc)
WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter
WdApp.Selection.Font.Bold = wdToggle
WdApp.Selection.TypeParagraph
'Nom de l'unité déclarante
WdApp.Selection.Font.color = wdColorBlack
WdApp.Selection.Font.Size = 11
WdApp.Selection.TypeText(UnitName)
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
WdApp.Selection.TypeParagraph
'Période du rapport
WdApp.Selection.TypeText(BbDate)
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
WdApp.Selection.TypeParagraph
WdApp.Selection.TypeParagraph
'Générer des en-têtes de colonnes
'wdApp.Selection.HomeKey wdLine, wdExtend
'dApp.Selection.Font.Bold = wdToggle
WdApp.ActiveDocument.Tables.Add WdApp.Selection.Range, rowMax, colMax
Dim i comme entier
Faire
Pour colloop = 0 Pour colMax - 1
WdApp.Selection.Font.Size = 9
Si je = 0 Alors
'Le titre dans le tableau est affiché en gras
WdApp.Selection.Font.Bold = wdToggle
'Définissez la couleur d'arrière-plan de la ligne de titre du tableau sur gris, avec une échelle de gris de 30
Avec WdApp.Selection.Cells
Avec .Shading
.Texture = wdTextureAucun
.ForegroundPatternColor = wdColorAutomatique
.BackgroundPatternColor = wdColorGray30
Terminer par
Terminer par
Fin si
'La dernière ligne est alignée à droite et le reste est aligné à gauche
Si je > 0 Alors
Si MyRecord.Fields.Item(colloop).Name = "ZBMC" ou MyRecord.Fields.Item(colloop).Name = "Nom de l'indicateur" Alors
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
Autre
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
Fin si
Fin si
Si i = 0 Et (MyRecord.Fields.Item(colloop).Name = "SXH" Ou MyRecord.Fields.Item(colloop).Name = "Sequence Number") Alors
WdApp.Selection.TypeText ("numéro de série")
Autre
WdApp.Selection.TypeText (CStr(MyRecord.Fields.Item(colloop).value))
Fin si
Si (i <> rowMax - 1 Ou (i = rowMax - 1 And colloop < colMax - 1)) Alors
WdApp.Selection.MoveRight (wdcell)
Fin si
Suivant
je = je + 1
MonEnregistrement.MoveNext
Boucle jusqu'à MyRecord.EOF
WdApp.ActiveDocument.SaveAs DocFileName, 0, False, "", True, "", False, False, False, False, False
WdApp.Quitter
Enregistrer sous Mot = 1
Fonction de sortie
Err_Tous :
Définir WdApp = Rien
Enregistrer sous Mot = -1
OutMessage = err.Description
Fonction de sortie
Fin de la fonction
D'accord, jusqu'à présent, je pense que vous avez une certaine compréhension de l'utilisation des commandes de macro Word pour développer des composants ASP en VB. Tant que vous l’utiliserez davantage, vous vous y familiariserez rapidement.