{"id":14070768,"url":"https://github.com/HALTEC/VBA-commons-lib","last_synced_at":"2025-07-30T08:32:20.475Z","repository":{"id":225097921,"uuid":"89501417","full_name":"HALTEC/VBA-commons-lib","owner":"HALTEC","description":"A collection of basic auxiliary classes and modules to complement VBA.","archived":false,"fork":false,"pushed_at":"2022-10-05T07:06:53.000Z","size":113,"stargazers_count":12,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-13T07:18:18.283Z","etag":null,"topics":["vba","vba-library"],"latest_commit_sha":null,"homepage":null,"language":"VBA","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HALTEC.png","metadata":{"files":{"readme":"README.pod","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-26T16:08:08.000Z","updated_at":"2023-12-04T15:46:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4981695-1b9d-48b6-a88a-8b89d5b2b3b6","html_url":"https://github.com/HALTEC/VBA-commons-lib","commit_stats":null,"previous_names":["haltec/vba-commons-lib"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HALTEC%2FVBA-commons-lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HALTEC%2FVBA-commons-lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HALTEC%2FVBA-commons-lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HALTEC%2FVBA-commons-lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HALTEC","download_url":"https://codeload.github.com/HALTEC/VBA-commons-lib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228110808,"owners_count":17871234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["vba","vba-library"],"created_at":"2024-08-13T07:08:05.086Z","updated_at":"2024-12-04T12:32:14.606Z","avatar_url":"https://github.com/HALTEC.png","language":"VBA","funding_links":[],"categories":["VBA"],"sub_categories":[],"readme":"=pod\r\n\r\n=encoding utf8\r\n\r\n=head1 VBA commons library\r\n\r\nBasic auxiliary classes and modules to complement VBA\r\n\r\n=head1 DESCRIPTION\r\n\r\nThis library is a collection of modules and classes to complement VBA. The\r\nlibrary is not intended as a one stop solution for everything VBA. It contains\r\ncomponents for IO, VBA datastructure handling, a C\u003cCollection\u003e\r\nreplacement, testing and some more.\r\n\r\n=head2 Constructors\r\n\r\nThe classes in this package use a uniform, but non-standard mechanism for\r\nconstructing objects. Each class is accompanied by a function in the\r\nC\u003cConstructors\u003e module named C\u003cClassName_create()\u003e which returns a fully\r\nconstructed instance of the repective class. These functions may take\r\nparameters. This approach provides a short object creation syntax:\r\n\r\n    List_create(1, 2, 3).elems ' 3\r\n\r\n\r\nThe mechanism does not primarily rely on the C\u003cClass_Initialize()\u003e event. Each\r\nclass provides one or more C\u003cinit()\u003e methods that may take parameters. This\r\nmethod is responsible for initialization of the class, but not for creating the\r\nobject instance itself.\r\nThe C\u003cConstructors.ClassName_create()\u003e function creates a class instance, calls\r\nthe C\u003cinit()\u003e method, forwarding all parameters it got, and returns the\r\nfully initialized instance.\r\n\r\n=head2 Classes as Modules\r\n\r\nMost of the modules in this library are actually implemented as Classes. The\r\nreason is to not fill up the global function namespace with all the different\r\nfunction names the modules provide. The functions can still be called without\r\ncreating a class instance first by simply writing\r\n\r\n    ClassName.functionName()\r\n\r\nThis is made possible using a VB class attribute.\r\n\r\n    Attribute VB_PredeclaredId = True\r\n    \r\nWhen this attribute is attached to a class, VBA automatically creates an\r\ninstance of that class on load and all method calls on the class name itself use\r\nthat instance.\r\n\r\n=head2 Attributes\r\n\r\nThis library makes use of VB class and method attributes in several places.\r\nThese attributes are visible in the exported text files and thus also in this\r\nrepository, but the VBA editor hides them, they are simply not visible anymore.\r\nWhen copying methods and classes textually in the VBA editor these attributes\r\ncan get lost. To edit them one has to export the module/class to a text file,\r\nedit the attributes and import the module/class again. Exporting and importing\r\nis done via right mouse button on the class/module in the Project Explorer and\r\nthen choosing I\u003cExport/Import File...\u003e.\r\n\r\n=head1 CONTENTS\r\n\r\n=head2 Arrays\r\n\r\nThe C\u003cArrays\u003e module provides functions to deal with array data structures. For\r\nexample creating empty arrays or sorting arrays.\r\n\r\n=head2 Collections\r\n\r\nAuxiliary functions to work with the collection classes of this library\r\n(L\u003cList\u003e, L\u003cMap\u003e, ...).\r\n\r\n=head2 DevUtils\r\n\r\nFunctions to help with development of this library itself.\r\n\r\n=head2 IO\r\n\r\nSimple file IO with good encoding support.\r\n\r\n=head2 List\r\n\r\nAn optionally typed 0-based list implementation.\r\n\r\n=head2 Map\r\n\r\nAn optionally typed map implementation.\r\n\r\n=head2 Math\r\n\r\nCommon operations on numeric values. E.g. C\u003cmin()\u003e, C\u003cmax()\u003e, C\u003ccmp()\u003e\r\n\r\n=head2 Regexes\r\n\r\nFunctions to help with using the C\u003cVBScript_RegExp_55.RegExp\u003e class.\r\n\r\n=head2 Stringx\r\n\r\nCommon operations on string values. E.g. C\u003csplit()\u003e, C\u003cjoin()\u003e, C\u003cformat()\u003e\r\n\r\n=head2 Test\r\n\r\nA minimal testing framework.\r\n\r\n=head2 Variants\r\n\r\nCommon operations on C\u003cVariant\u003e values. E.g. C\u003cequals()\u003e, C\u003cisArray()\u003e,\r\nC\u003cgist()\u003e\r\n\r\n=head2 XlUtils\r\n\r\nExcel specific functions. E.g. C\u003crowColToExcel()\u003e, C\u003csheetExists()\u003e,\r\nC\u003cisWorkbookOpen()\u003e\r\n\r\n=head1 INSTALLATION\r\n\r\nTo import all the components of this library into an Excel file one can use the\r\nC\u003cDevUtils.importModules()\u003e function. To use it, just import the C\u003cDevUtils\u003e\r\nclass manually into the VBA project and then call\r\nC\u003cDevUtils.importModules \"C:\\path\\to\\this\\repo\\VBA-commons-lib\"\u003e.\r\nThis will also automatically add all the necessary references to external\r\nlibraries.\r\n\r\nSome of these classes depend on others, but to some extent they can be used\r\nindependently. So when one only wants a single class or module the easiest way\r\nis to only import that module, try to build and see which modules VBA is\r\nmissing.\r\n\r\nEspecially all the C\u003cTest_\u003e modules only contain tests and need not be imported.\r\n\r\n=head1 LICENSE\r\n\r\nLicensed under the Apache License, Version 2.0 (the \"License\");\r\nyou may not use this library except in compliance with the License.\r\nYou may obtain a copy of the License at\r\n\r\n    https://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software\r\ndistributed under the License is distributed on an \"AS IS\" BASIS,\r\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\nSee the License for the specific language governing permissions and\r\nlimitations under the License.\r\n\r\n=head1 BUGS AND LIMITATIONS\r\n\r\nPlease report any bugs or feature requests through the web interface at\r\nL\u003chttps://github.com/HALTEC/VBA-commons-lib/issues\u003e.\r\n\r\n=head1 AUTHORS\r\n\r\nPatrick Böker  C\u003c\u003c \u003cpatrick.boeker@haltec.de\u003e \u003e\u003e, originally based on\r\ncode by Mathieu Guindon that can be found on\r\nL\u003cGithub|https://github.com/retailcoder/VBTools\u003e.\r\n\r\n=cut\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHALTEC%2FVBA-commons-lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHALTEC%2FVBA-commons-lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHALTEC%2FVBA-commons-lib/lists"}