Code : Tout sélectionner
#include <Debug.au3>
#include <Array.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <Word.au3>
#include <File.au3>
#include <Array.au3>
_DebugSetup('Rapport debuggage', True, 2)
; lister fichiers d'un dossier OK
Local $aFileList = _FileListToArray("c:\temp\", "*.docx")
;~ Local $aFileList = _FileListToArray("d:\", "*.docx")
If @error = 1 Then
MsgBox($MB_SYSTEMMODAL, "", "Chemin incorrect.")
Exit
EndIf
If @error = 4 Then
MsgBox($MB_SYSTEMMODAL, "", "Aucun fichier(s) n'ont été trouvés.")
Exit
EndIf
_ArrayDisplay($aFileList, "Fichiers du dossier")
; Afficher caractéristiques du tableau des fichiers présents dans le dossier OK
Local $iRows = UBound($aFileList, $UBOUND_ROWS) ; Nombre de rangées
Local $iCols = UBound($aFileList, $UBOUND_COLUMNS) ; Nombres de colonnes
Local $iDimension = UBound($aFileList, $UBOUND_DIMENSIONS) ; Dimensions du tableau
MsgBox($MB_SYSTEMMODAL, "Structure tableau", "Le tableau comporte: " & @CR & $iDimension & " dimension(s)" & _
@CR & $iRows & " rangée(s) & " & @CR & $iCols & " colonne(s).")
; Lister les fichiers dans le dossier les afficher dans la console OK
For $i = 1 To $aFileList[0]
ConsoleWrite($aFileList[$i] & @CRLF)
MsgBox(48, "Liste fichier", $aFileList[$i])
modeles($aFileList[$i])
Next
; afficher les informations sur le ou les modeles présents dans le fichier
;## $i est plutôt utilisé comme variable temporaire dans les boucles.
-Func modeles($i)
Func modeles($fichier)
- MsgBox(64, " La valeur du fichier portant la variable i est de ", $i)
MsgBox(64, " La valeur du fichier portant la variable $fichier est de ", $fichier)
;## On peut aussi utiliser _DebugReportVar pour éviter d'avoir 36 MsgBox qui s'affichent.
_DebugReportVar("$fichier", $fichier)
Local $bVisible, $bForceNew
Local $oWordApp = _Word_Create($bVisible = True, $bForceNew = True)
If @error <> 0 Then Exit MsgBox($MB_SYSTEMMODAL, Default, _
"Error creating a new Word application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
If @extended = 1 Then
MsgBox($MB_SYSTEMMODAL, Default, "MS Word was not running when _Word_Create was called.")
Else
MsgBox($MB_SYSTEMMODAL, Default, "MS Word was already running when _Word_Create was called.")
EndIf
- If $oWordApp = @error Then
- MsgBox(48, "WordCreate erreur", $oWordApp)
- Else
- MsgBox(48, "Nickel", "")
- EndIf
;## Syntaxehttp://msdn.microsoft.com/fr-fr/library/office/ff839734%28v=office.15%29.aspx
;## Syntaxe
;## expression .AttachedTemplate
;## expression Une variable qui représente un objet Document .
;## $oWordApp n'est pas un objet Document.
;## L'objet Document est récupéré plus bas (voir $oDocument).
- $oWordApp2 = $oWordApp.AttachedTemplate.FullName
- MsgBox(48, "WordCreate Attached Name ", $oWordApp2)
; Si la creation de l'objet Word ne peut se faire afficher une erreur
;## L'erreur ne va s'afficher que si MsgBox() renvoie une erreur.
- If @error Then Exit MsgBox($MB_SYSTEMMODAL, Default, _
- "Error creating a new Word application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oDocument = _Word_DocOpen($oWordApp, $fichier, Default, Default, True)
;~ Local $oDocument = _Word_DocOpen($oWordApp,$fichier)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, Default, _
"Error opening " & $fichier & @CRLF & "error = " & @error & ", @extended = " & @extended)
; Définition d'un nouveau modèle
; Modèles
;~ $oWordApp.AttachedTemplate="c:\Templates\Letter.dot"
;
; Lister les informations récupérées dans un tableau --> BLEM
;## Les informations récupérées seront également affichées avec _DebugOut dans la console.
Local $tableau[2][2]
$tableau[0][0] = $oDocument.AttachedTemplate.Name
_DebugOut($oDocument.AttachedTemplate.Name)
$tableau[0][1] = $oDocument.AttachedTemplate.FullName
_DebugOut($oDocument.AttachedTemplate.FullName)
_ArrayDisplay($tableau, " Modeles présents dans le fichier")
If Not FileExists($oDocument.AttachedTemplate.FullName) Then
$oDocument.AttachedTemplate = "C:\Templates\Letter.dot"
EndIf
_DebugOut('')
_DebugReportVar('$oWordApp.Templates', $oWordApp.Templates)
For $template In $oWordApp.Templates
_DebugOut($template.Name)
_DebugOut($template.FullName)
- $test = _DebugOut($template.Name)
;## C'est le chemin du modèle qui nous intéresse (c.a.d. $template.FullName).
;## $i (que j'ai changé en $fichier) c'est le fichier Word donc il existe forcément puisqu'on vient de l'ouvrir.
- If Not FileExists($i) Then
If Not FileExists($template.FullName) Then
MsgBox(48, "Fichier inexistant", " Fichier Inacessible : " & $template.FullName)
Else
MsgBox(48, "Le fichier est accessible", $template.FullName)
EndIf
Next
;
; Compléments
;
_DebugReportVar('$oWordApp.AddIns', $oWordApp.AddIns)
For $addIns In $oWordApp.AddIns
$Nom = _DebugOut($addIns.Name)
$Chemin = _DebugOut($addIns.Path)
_DebugOut($addIns.Installed)
_DebugOut('')
MsgBox(48, "titre", _DebugReportVar('$oWordApp.AddIns', $oWordApp.AddIns))
; If Not FileExists(...
Next
;sauver le document notamment si le modèle est remplacé
_Word_DocSave($oDocument)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, Default, _
"Error saving the Word document." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Fermeture du document
_Word_DocClose($i)
EndFunc ;==>modeles