How do I call an Excel VBA script using xlwings v0.10
Question: I used to use the info in this question to run a VBA script that does some
basic formatting after I run my python code.

[How do I call an Excel macro from Python using
xlwings?](http://stackoverflow.com/questions/30308455/how-do-i-call-an-excel-
macro-from-python-using-xlwings)

Specifically I used the first update.

    
    
    from xlwings import Workbook, Application
    wb = Workbook(...)
    Application(wb).xl_app.Run("your_macro")
    

Now I'm using v0.10.0 of xlwings and this code no longer works.

When I try the suggested new code for v0.10.0:

    
    
    wb.app.macro('your_macro')
    

Python returns an object:

    
    
    <xlwings.main.Macro at 0x92d3198>
    

and my macro isn't run in Excel.

The documentation
(<http://docs.xlwings.org/en/stable/api.html#xlwings.App.macro>) has an
example that is a custom function but I have a script that does several things
in Excel (formats the data I output from python, adds some formulas in the
sheet, etc.) that I want to run.

I'm sure I'm missing something basic here.

**Update** Based on Felix Zumstein's suggestion, I tried:

    
    
    import xlwings as xw
    xlfile = 'model.xlsm'
    wb = xw.Book(xlfile)
    wb.macro('your_macro')
    

This returns the same thing as wb.app.macro('your_macro'):

    
    
    <xlwings.main.Macro at 0x92d05888>
    

and no VBA script run inside Excel.


Answer: You need to use `Book.macro`. As your link to the docs says, `App.macro` is
only for macros that are not part of a workbook (i.e. addins). So use:

    
    
    wb.macro('your_macro')
    

