[Python] AppleScript acusa erro de sintaxe. Automação simples para excel com python,...

Discussão em 'Python' iniciado por Stack, Novembro 20, 2024.

  1. Stack

    Stack Membro Participativo

    O código tem objetivo de abrir uma planilha do excel, adicionar código VBA (para criar alguns botões) e fechar a planilha.

    import subprocess

    #essa função é chamada no fim de outro arquivo python (todo o resto funciona bem, o erro está aqui mesmo)
    def executeMAC():

    applescript = """
    tell application "Microsoft Excel"
    activate
    open "/---/---/---/registros2024.xlsx"
    tell workbook 1
    set vbaCode to "
    sub CriarBotoes()
    Dim btnMes As Object
    Dim btnNome As Object
    Dim btnMostrarTodos As Object
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets(""Sheet1"")

    Set btnMes = ws.Buttons.Add(700, 50, 100, 30)
    btnMes.OnAction = ""FiltrarPorMes.FiltrarPorMes""
    btnMes.Caption = ""Filtrar por Data""
    btnMes.Placement = xlFreeFloating

    Set btnNome = ws.Buttons.Add(700, 100, 100, 30)
    btnNome.OnAction = ""FiltrarPorNome.FiltrarPorNome""
    btnNome.Caption = ""Filtrar por Nome""
    btnNome.Placement = xlFreeFloating

    Set btnMostrarTodos = ws.Buttons.Add(700, 150, 100, 30)
    btnMostrarTodos.OnAction = ""MostrarTodosOsDados.MostrarTodosOsDados""
    btnMostrarTodos.Caption = ""MostrarTodos""
    btnMostrarTodos.Placement = xlFreeFloating

    Set btnGerarPDF = ws.Buttons.Add(700, 200, 100, 30)
    btnGerarPDF.OnAction = ""GerarPDF.GerarPDF""
    btnGerarPDF.Caption = ""Gerar PDF""
    btnGerarPDF.Placement = xlFreeFloating
    End Sub
    "
    set vbModule to make new VB project at end
    tell vbModule
    make new VB component at end with properties {name:"CriarBotoes", code content:vbaCode}
    end tell
    end tell

    save workbook 1 in "/Volumes/Macintosh HD/Library/personalTI/registros_2024.xlsm"
    close workbook 1

    end tell
    """

    # Executa o AppleScript

    process = subprocess.run(\['osascript', '-e', applescript\], text=True)

    if process.returncode == 0:
    print('- Código VBA inserido')
    else:
    print('- Ocorreu um erro ao inserir o Código VBA.')


    O código retorna o seguinte erro:

    420:421: syntax error: Esperava-se final de linha, encontrou-se """. (-2741)

    Já estou há 2 dias lendo e relendo essas linhas. Já tentei usar o chatGPT, mas só o que ele me retorna é o que eu já sei: o AppleScript usa 2 aspas duplas pra anulá-las quando há código dentro de código - nesse caso, o VBA dentro do AppleScript - e, aparentemente, estou usando errado em algum ponto, só não consigo, de modo algum, enxergar onde é.

    Continue reading...

Compartilhe esta Página