UDF > Excel >


_Excel_PictureAdd

Ajoute une image dans le classeur et la feuille de calcul spécifiés

#include <Excel.au3>
_Excel_PictureAdd ( $oWorkbook, $vWorksheet, $sFile, $vRangeOrLeft [, $iTop = Default [, $iWidth = Default [, $iHeight = Default [, $bKeepRatio = True]]]] )

Paramètres

$oWorkbook Objet classeur Excel
$vWorksheet Nom, index ou objet feuille de calcul où écrire. Si la valeur est le mot-clé Default, la feuille active sera utilisée
$sFile Le chemin complet vers le fichier d'image à ajouter
$vRangeOrLeft Une plage au format $xlA1, ou un objet plage, ou un entier indiquant la position, à partir de la gauche, du coin supérieur gauche de l'image
$iTop [optionnel] Si $vRangeOrLeft est un entier, alors $iTop est la position, à partir du haut, du coin supérieur gauche de l'image.
$iWidth [optionnel] Si spécifié, définit la largeur de l'image. S'il n'est pas spécifié, la largeur sera ajustée automatiquement (par défaut = Automatic)
$iHeight [optionnel] Si spécifié, définit la hauteur de l'image. S'il n'est pas spécifié, la hauteur sera ajustée automatiquement (par défaut = Automatic)
$bKeepRatio [optionnel] Utilisé uniquement si $vRangeOrLeft est une plage de plusieurs cellules (par défaut, True)
    True maintiendra les proportions de l'image d'aspect, tout en restant dans les limites de $vRangeOrLeft.
    False remplira le champ $vRangeOrLeft, en fonction des proportions de l'image d'origine.

Valeur de retour

Succès: Retourne un objet Shape qui représente la nouvelle image.
Échec: Retourne 0 et définit @error <> 0.
@error: 1 - $oWorkbook n'est pas un objet ou n'est pas un objet classeur
2 - Le nom ou l'index de $vWorksheet n'est pas valide ou $vWorksheet n'est pas un objet feuille de calcul. @extended contient le code d'erreur COM
3 - $vRangeOrLeft n'est pas valide. @extended contient le code d'erreur COM
4 - Une erreur s'est produite lors de l'ajout de l'image. @extended contient le code d'erreur COM
5 - $sFile n'existe pas

Remarques

Si $vRangeOrLeft est une plage de plusieurs cellules $iWidth et $iHeight seront ignorés (pour spécifier que width/height ne concerne pas sur la plage width/height, spécifiez une seule cellule dans $vRangeOrLeft).

Si un seul des paramètres $iWidth et $iHeight est spécifié, l'autre (défini par défaut) sera calculé pour conserver les proportions initiales de l'image.
Si les deux paramètres $iWidth et $iHeight sont spécifiés, l'image utilisera les valeurs spécifiées sans respecter les proportions de l'image.
Si aucun des paramètres $iWidth et $iHeight n'est spécifié, l'image sera automatiquement dimensionnée à la taille de l'image d'origine.

$bKeepRatio sera ignorée, sauf si une plage de plusieurs cellules est spécifiée ( voir Paramètres pour plus de détails ).

Exemple

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Crée un objet Excel et ouvre un classeur
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple", "Erreur lors de la création de l'objet Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Crée un nouveau classeur
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple", "Error creating workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; *****************************************************************************
; Insère et redimensionne l'image dans une plage de cellules. Proportions conservées
; *****************************************************************************
Local $sPicture = @ScriptDir & "\Extras\_Excel.jpg"
_Excel_PictureAdd($oWorkbook, Default, $sPicture, "B2:D8")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple 1", "Erreur lors de l'insertion de l'image." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple 1", "Image insérée/redimensionnée en 'B2:D8', ratio conservé.")

; *****************************************************************************
; Insère l'image sans redimensionnement.
; *****************************************************************************
_Excel_PictureAdd($oWorkbook, Default, $sPicture, "F8")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple 2", "Erreur lors de l'insertio de l'image." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple 2", "Image insérée en 'F1' sans redimensionnement.")

; *****************************************************************************
; Insère l'image avec taille/hauteur définies.
; *****************************************************************************
_Excel_PictureAdd($oWorkbook, Default, $sPicture, "A8", Default, 300, 250)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple 3", "Erreur lors de l'insertion de l'image." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple 3", "Image insérée en 'A8' avec largeur/hauteur définies, ratio ignoré.")

; *****************************************************************************
; Insère l'image avec taille/hauteur définies.
; *****************************************************************************
_Excel_PictureAdd($oWorkbook, Default, $sPicture, 250, 300, 300, 250)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple 4", "Erreur lors de l'insertion de l'image." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple 4", "Image insérée à la position 250/300 avec largeur/hauteur définies, ratio ignoré.")

; *****************************************************************************
; Insère l'image avec taille/hauteur définies.
; *****************************************************************************
_Excel_PictureAdd($oWorkbook, Default, $sPicture, "F2:H9", Default, Default, Default, False)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple 5", "Erreur lors de l'insertion de l'image." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "UDF Excel: _Excel_PictureAdd-Exemple 5", "Image insérée/redimensionnée en 'F2:H9', ratio ignoré.")