Skip to content

PyWimVBA 6.0 Alpha

Latest
Compare
Choose a tag to compare
@ScadeBlock ScadeBlock released this 02 Aug 06:29
· 11 commits to main since this release
8b2f772

🎉🎉New Features🎉🎉

  • Create new RunPy
    • Require PyServer (1.0 for PyWVBA 6.0)
    • Added cache value
    • Huge Performance improves from 5.x
  • Added some server function like ClearPyServer() - Clear all variable cached
  • Don't need to create logfile or codefile
  • Keep 5.4 RunPy() and renamed it to RunPyOld()
  • ⚠ Warning: PyServer 1.0 using localhost with port : 9812

🎨 PyWimVBA Example

Documention

💎PyWimVBA 6.0 New Function

  • StartPyServer(Optional: pythonPath = "python",Optional useCustomPyServer: False,Optional : silent=false) : Starts PyServer (PyServer supports only single server) silent=true will hide command prompt of PyServer. Set useCustomPyServer to path of your PyServer (can use in offline or a older pyserver)

  • EndPyServer(Optional deletePyServer: True) - A server doesn't close automatically with VBA, so you need to close it before end VBA code . Use deletePyServer=False to keep your PyServer to reuse in StartPyServer (Not recommend)

  • CheckPyServer() - Check a or any server is running.

  • PathPyServer() - Get PyServer path

  • ClearPyServer() - Because PyServer support only one server, you can use this function to clear cached data like value,etc...

  • RunPy(code) - Simply run a code of python, split new line with ;; and indentation are space,tab or tab smart syntax: !tab~

  • LoadPy(file) - Load a python file and convert it to PyWimVBA Syntax

    • For example, it'll convert this file code

    examplefile.py

    import time
    time.sleep(5)
    
    • To import time;time.sleep(5)
    • APPLY TO USE: RunPy(LoadPy("mycodefile.anyextension"))
  • RunPyOld(code,[pythonPath = "python"] , [newengine = False], [ keepFileData = False] , [UseDebug = False])

  • Code splitting by ";;" , e.x : import time;;time.sleep(5)

  • [Optional] newengine : Improve performance, doesn't need to create logfile - still create code file . But it's will show up a cmd splash - doesn't work with UseDebug

  • [Optional] keepFileData: Keep the output file and code file after finishing execution.

  • [Optional] UseDebug: Show cmd that runs python code and keep it alive with it's output [Use debug to catch errors, the output file may not catch them. So when debug is enabled, Output file does nothing.

  • E.x : MsgBox RunPy("Welcome to \'Python With VBA!\'")

Example usage

Here's a example code to run python in vba wuth PWV

Sub running()
    StartPyServer
    RunPy ("example_value = 'Hello from PWA 6!'")
    MsgBox RunPy("print(example_value)") 'To test cached value
    MsgBox RunPy("if 1+1==2:;;!tab~print('It actually works!')")
    EndPyServer
End Sub