IncPy
stdVBA-examples | IncPy | |
---|---|---|
9 | 1 | |
6 | 12 | |
- | - | |
6.7 | 10.0 | |
15 days ago | over 13 years ago | |
JavaScript | Python | |
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
stdVBA-examples
-
Why do people still use VBA?
I do RPA from VBA personally using IAccessiblity. See stdAcc (https://github.com/sancarn/stdVBA/blob/master/src/stdAcc.cls) and an example (https://github.com/sancarn/stdVBA-examples/tree/main/Example...)
-
How long have you been using VBA? What do you use it for at your job? Or for personal reasons
Sometimes, though more of a library / tool developer here. See stdVBA or stdVBA-examples
- Bulk Structured Spreadsheet Extractor
-
{Excel] How to populate web forms now that Internet Explorer is gone?
You can use stdChrome, which uses accessibility APIs.
-
[Excel] Send.Keys"^(c)", True not always copying text to clipboard
Instead use the accessibility tree to extract information you need directly out of the interface. I have an example of a chrome automation application here.
-
Chrome Automation without Selenium
Use accessibility
-
What problems have you solved with VBA?
Automating chrome via accessibility or via devtools protocol
- Chrome automation with accessibility APIs
- uiTextBoxEx - Microsoft Word features in textboxes for VBA UserForms!
IncPy
-
Why do people still use VBA?
In the notebook context the main gripe is that notebooks have the "invisible" memory state that means that one can't deduce from the notebook code what it actually does. Or more concretely the order of execution of the cells affects what the notebook does. This leads to sort of higher level side-effects. With usual side effects you get spaghetti, with notebooks you get moving spaghetti in five dimensional space.
Immutability and idempotencency are good, and related, ideals too, although I think these can get too "unergonomic" if taken too dogmatically (like in Haskell or Redux), they should be used with almost goto-level discretion.
Of course there's the clear (short term) usability benefit of maintaining the memory state in that stuff doesn't have to be recomputed. But we can have that benefit and be stateless with pure functions and memoization. I quite often whip up a buggy and brittle ad-hoc solution to do so. There was also the IncPy project [1] that did this more rigorously, but it hasn't been updated in 13 years.
In general I'm a bit baffled why pure function memoization is so rarely used or proposed. Despite the old adage, cache invalidation is not actually half of the three hard problems in CS. With pure functions it's trivial.
[1] https://github.com/pajju/IncPy
What are some alternatives?
VBAChromeDevProtocol - VBA (Excel) based wrapper for Chrome Developer Protocol (CDP) - sorta a VBA version of Puppeteer/Selenium
riot - Simple and elegant component-based UI library
awesome-vba - A curated list of awesome VBA/VB6 frameworks, libraries, software and resources
caprine - Elegant Facebook Messenger desktop app
stdVBA - VBA Standard Library - A Collection of libraries to form a common standard layer for modern VBA applications.
Playwright - Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.