0 votes

Comment formater l'en-tête dans une feuille Excel en utilisant AppleScript

Voici le code VBA pour personnaliser la police, la taille de police et styliser les en-têtes et pieds de page dans une feuille de calcul Excel :

'With sht.PageSetup
            '.CenterHeader = "&R&""Consolas""&KFFFF00" & sht.Name
            '.PrintArea = Range(Cells(1, 1), Cells(lastrow, lastcol)).Address
'End With

Comment je peux convertir cela en AppleScript ? J'ai essayé ce qui suit :

tell application id "com.microsoft.Excel"
    set screen updating to false
    set wb to active workbook
    set wsName to the name of the active sheet of wb
    repeat with ctr from 1 to the count of worksheets in wb
        log ctr
        set sName to (the name of worksheet ctr of wb)
        select worksheet sName
        tell page setup object of active sheet
            set center header to sName
            --.CenterHeader = "&R&""Consolas""&KFFFF00" & sht.Name
            -- set center header to "&R&""Consolas""&KFFFF00" & sName
        end tell
    end repeat

    save wb
    select worksheet wsName -- retour à la feuille active originale
    set screen updating to true

end tell

mais j'ai besoin d'aide pour cette ligne :

– set center header to "&R&""Consolas""&KFFFF00" & sName

1voto

Mockman Points 847

Essayez ceci:

    set center header to "&R&\"Consolas,Regular\"&KFFFF00&A"

Quelques commentaires…

center header peut également être utilisé pour retourner les paramètres d'en-tête. Donc, lorsque vous essayez de déterminer la syntaxe correcte, vous pouvez toujours les définir manuellement et ensuite exécuter quelque chose comme ceci.

tell page setup object of active sheet
    get center header
end tell

Cela renverra ceci, que vous pouvez ensuite utiliser dans votre script.

"&R&\"Consolas,Regular\"&KFFFF00&A"

Remarquez que la police nécessite des guillemets autour d'elle - sinon vous insereriez le code '&C' - et ceux-ci doivent être échappés. De plus, le code '&A' insérera le nom de la feuille, donc vous ne devriez pas avoir à utiliser la variable sName. Enfin, j'obtiens un comportement capricieux du code '&R', qui semble définir plutôt l'en-tête droit. Peut-être est-ce un bug, peut-être est-ce seulement dans excel 2011. Qui sait.

J'espère que cela vous aide.

Addendum:

En passant, la manière correcte de rendre une feuille active est de la activer objet, comme ceci:

tell application id "com.microsoft.Excel"
    activate

    set wb to active workbook
    set wsName to the name of the active sheet of wb
    delay 2
    activate object worksheet 4
    delay 2
    activate object worksheet wsName
end tell

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X