From 62afa3fc7cfcf6ada8df948960276d5b47da1401 Mon Sep 17 00:00:00 2001 From: jesusfelix951-lang Date: Thu, 23 Oct 2025 18:11:27 -0600 Subject: [PATCH 1/4] Update .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 8bf9e7f5b2..00cbc68725 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ test/Test*.xlsm test/Test*.xlsx test/Test*.xltm test/Test*.xltx +logs/xvba_debug.log +logs/excel_server.log From 56832f0f245604321176d3ca328e130b16da1e8b Mon Sep 17 00:00:00 2001 From: jesusfelix951-lang <238798811+jesusfelix951-lang@users.noreply.github.com> Date: Fri, 24 Oct 2025 01:47:58 -0600 Subject: [PATCH 2/4] a --- .gitignore | 21 +- .vscode/launch.json | 60 ++ config.json | 14 + index.xlsb | Bin 0 -> 13912 bytes package.json | 15 + ribbons/customUI14.xml | 15 + ribbons/examples/Custom OutSpace.xml | 16 + ribbons/examples/Custom Tab.xml | 11 + ribbons/examples/Excel - A Custom Tab.xml | 18 + ribbons/examples/Repurpose.xml | 6 + .../examples/Word - Group on Insert Tab.xml | 11 + ribbons/images/home.png | Bin 0 -> 8466 bytes test/Book1.xlsx | Bin 20451 -> 9205 bytes vba-files/Controllers/pageController.bas | 56 ++ vba-files/Helpers/Alert.bas | 17 + vba-files/Views/pageView.bas | 19 + vba-files/ribbons/MyRibbon.bas | 37 ++ xvba_modules/Xdebug/CHANGELOG.md | 13 + xvba_modules/Xdebug/README.md | 58 ++ xvba_modules/Xdebug/Xdebug.cls | 241 +++++++ xvba_modules/Xdebug/images/immediate.gif | Bin 0 -> 23128 bytes xvba_modules/Xdebug/xvba.package.json | 15 + xvba_modules/Xlog/CHANGELOG.md | 9 + xvba_modules/Xlog/README.md | 4 + xvba_modules/Xlog/Xlog.cls | 85 +++ xvba_modules/Xlog/xvba.package.json | 15 + xvba_modules/excel-types/CHANGELOG.md | 8 + xvba_modules/excel-types/README.md | 51 ++ xvba_modules/excel-types/application.d.vb | 147 ++++ xvba_modules/excel-types/dictionary.d.vb | 109 +++ xvba_modules/excel-types/err.d.vb | 30 + xvba_modules/excel-types/functions.d.vb | 547 +++++++++++++++ xvba_modules/excel-types/range.d.vb | 625 ++++++++++++++++++ xvba_modules/excel-types/workbook.d.vb | 157 +++++ xvba_modules/excel-types/workbooks.d.vb | 109 +++ xvba_modules/excel-types/worksheet.d.vb | 86 +++ xvba_modules/excel-types/worksheets.d.vb | 54 ++ xvba_modules/excel-types/xvba.package.json | 15 + xvba_unit_test/Test/Test.bas | 13 + 39 files changed, 2690 insertions(+), 17 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 config.json create mode 100644 index.xlsb create mode 100644 package.json create mode 100644 ribbons/customUI14.xml create mode 100644 ribbons/examples/Custom OutSpace.xml create mode 100644 ribbons/examples/Custom Tab.xml create mode 100644 ribbons/examples/Excel - A Custom Tab.xml create mode 100644 ribbons/examples/Repurpose.xml create mode 100644 ribbons/examples/Word - Group on Insert Tab.xml create mode 100644 ribbons/images/home.png create mode 100644 vba-files/Controllers/pageController.bas create mode 100644 vba-files/Helpers/Alert.bas create mode 100644 vba-files/Views/pageView.bas create mode 100644 vba-files/ribbons/MyRibbon.bas create mode 100644 xvba_modules/Xdebug/CHANGELOG.md create mode 100644 xvba_modules/Xdebug/README.md create mode 100644 xvba_modules/Xdebug/Xdebug.cls create mode 100644 xvba_modules/Xdebug/images/immediate.gif create mode 100644 xvba_modules/Xdebug/xvba.package.json create mode 100644 xvba_modules/Xlog/CHANGELOG.md create mode 100644 xvba_modules/Xlog/README.md create mode 100644 xvba_modules/Xlog/Xlog.cls create mode 100644 xvba_modules/Xlog/xvba.package.json create mode 100644 xvba_modules/excel-types/CHANGELOG.md create mode 100644 xvba_modules/excel-types/README.md create mode 100644 xvba_modules/excel-types/application.d.vb create mode 100644 xvba_modules/excel-types/dictionary.d.vb create mode 100644 xvba_modules/excel-types/err.d.vb create mode 100644 xvba_modules/excel-types/functions.d.vb create mode 100644 xvba_modules/excel-types/range.d.vb create mode 100644 xvba_modules/excel-types/workbook.d.vb create mode 100644 xvba_modules/excel-types/workbooks.d.vb create mode 100644 xvba_modules/excel-types/worksheet.d.vb create mode 100644 xvba_modules/excel-types/worksheets.d.vb create mode 100644 xvba_modules/excel-types/xvba.package.json create mode 100644 xvba_unit_test/Test/Test.bas diff --git a/.gitignore b/.gitignore index 00cbc68725..2edfa3434a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,4 @@ -.DS_Store -.idea -*.json -*.out -*.test -~$*.xlsx -test/*.png -test/BadWorkbook.SaveAsEmptyStruct.xlsx -test/Encryption*.xlsx -test/excelize-* -test/Test*.xlam -test/Test*.xlsm -test/Test*.xlsx -test/Test*.xltm -test/Test*.xltx -logs/xvba_debug.log -logs/excel_server.log +/node_modules +logs +/xvba_excel_backup +.gitignore \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000000..f96323fbb3 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,60 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "command": "npm start", + "name": "Run npm start", + "request": "launch", + "type": "node-terminal" + }, + { + "command": "npm start", + "name": "Run npm start", + "request": "launch", + "type": "node-terminal" + }, + { + "name": "Launch file", + "type": "go", + "request": "launch", + "mode": "debug", + "program": "${file}" + }, + { + "name": "Python Debugger: Module", + "type": "debugpy", + "request": "launch", + "module": "enter-your-modulgoae-name" + }, + { + "name": "Launch Package", + "type": "go", + "request": "launch", + "mode": "auto", + "program": "${workspaceFolder} + " + }, + { + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ], + "name": "Launch Extension", + "outFiles": [ + "${workspaceFolder}/out/**/*.js" + ], + "preLaunchTask": "npm", + "request": "launch", + "type": "extensionHost" + }, + { + "name": "Launch Package", + "type": "go", + "request": "launch", + "mode": "auto", + "program": "${fileDirname}" + } + ] +} \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000000..58436defe6 --- /dev/null +++ b/config.json @@ -0,0 +1,14 @@ +{ + "app_name": "XVBA", + "description": "", + "author": "", + "email": "", + "create_ate": "Thu Oct 23 2025 20:49:23 GMT-0600 (Central Standard Time)", + "excel_file": "index.xlsb", + "vba_folder": "vba-files", + "ribbon_file": "customUI14", + "ribbon_folder": "ribbons", + "logs": "on", + "xvba_packages": {}, + "xvba_dev_packages": {} +} \ No newline at end of file diff --git a/index.xlsb b/index.xlsb new file mode 100644 index 0000000000000000000000000000000000000000..2c89a64614a2c3c114cb9b25256f87a1aa4ba8ae GIT binary patch literal 13912 zcmeHOby!s2x(1{qq(izxNs%roNkyb%Kw=1qQA%J4l?J5+X`~xz0Rd?#N$C)zQ@Y`9 z;wPc!p6A|w&za{L_W16#zV+q1m$SZkBzp}W7X}dq83qQ15(ZrKn8ptl1||$11_lQP z8BS9SVqp!ou+~wse+IS!vDlfLQN+W;F~q^Z0ptJs`VaO%h*I;z8aB+&)GHW)ISjVV zu$0{)*D$Z#MpT)o<2ug^eo5XlG54PjnW|ZmCRBN7u7@}I{kwCjdJcj z7&#?1L=Fg{`bYu1um&2>>6KBqwON?j>4Vg2A0EQvA7O3J#~<2$xz3CGD%#sllxvH@ zvD8-f%cr1wI$^=X%6LTw*_DN4sh~#VR5EbWR;L12eDOF(VlgEOZjHGH74Mf#`Wp04 zxSN$<_!jtcK9JLjeS%&0L9)Jsj^#DRH|dGPNLDm}JJ7?>E>g}<#4gmnZ*Ahw-f|n2 zhc26Q{3X(Y0o*|d&SD48)aVx{xQQipcdr7e>-CcB9E}JdNvhW&=w^oYsxrh91Jx_9 zH3eVgO%bi%FlXOanbH9=@aX6o%%e+X>`x!}0vRadA)rc8fil*y1e;m0vK;^YZ~6WQ z*X#w;Gdo*lYS}Q6ewF>;cPoK(fh5GahJBHtIB6Jc50cG|*F=JB${-NTeFkfZXa0?H zhdb_#w%p-?ag?i@b^{tlFaFU6gq1RU-P}5Ro$VE{VX22Y;O1Io+x#)Bg5u^ zWT>JUZhOiEIgfuHy=(5X7_;mG7D74un|wn4}eSMWy-$3s9^7ylG)-bfl<$yc&z#9YbmYo^v3y7tu9t2{_qGw{E^+-_mnh2(oRXuLJ-4h(Q zxVVxfHiG3h*S(@TuAz#2%*A{i@$#z)jRG3{*ggz1{31>2ti;EUc^pZF!d2Cxx1p$` z7VuRd!_C%~!5uz)@t~?o{q}5Xw_mM?a~9)h^@TjfGRth&oThzH631U>JBzDMwP3cw z*k^uexB+>a+F~}}O=*^?hf$V_sp=*Brf1tC@Mh45zR-tAI32p*5$XCqNG|H%K#%I0uKk^lteXa|>p z>a>|qv?5&EmRDg1O7dkl1u6suDhXnRmrMI-XCsLrrm8y2ggy9m{1oz3zo|CL5+Wy;OwW&j&woyEDqe z3;&g|<~G*Cwt+jP0AmrsAj1NVKP9b;?*E6tV1fMy5TO6;SLWj?;Q5PIe*FAhzPor2 z`9o5foK%_U&dY#L4+^=`^zu6@>2JNZ>3k{68XCh~xwSgJF_o}f3rk&Cb($_?~b$MVLe*w)B@1f#2Cg zcfRU@-k_PkK}$D#gC^&QhOWr_UhQT#Va%Pimn2`R;;wa8vtfORgN=VFf=zP+?g`!# zWlW)K{1_py$xje#HmVlt6EF-0XzqK=GCjl$zUOE_OcDQ{rj!Wth=n5N4dn9m%WwAmX*oOY&CN;xy?!n+A02yY&z{GU#! zBEYP8g#@q`#qqBF#0l2MU~@3*$zS&4UHgK1t1q!6ekJRKi}5bYe1;~uD>y-3e&Obz zTAr96=VNJ5%p8k?azrkh$CKF2ypI9sCGeKbluX1@6m((x?1+&xdy)$ob1E<1Ddia< z<{O0FtZE1CmaA4eEPsc}D|17HebZielu$6uZht4n8?9*!X_d;G+4iSTc-*|@Cf7eG2&oT<$szvlo|;J;FDw+KW9l*Q zhCq$HY#rYl)qkVk4qq4aadTtkbCx*TnbhQNo}s{rxAf1X(N&zj}k8K;T8 zi(DPo(Yj#@^RDcZu2ml)m!%WY%Vb40lcu_!{>%+mG}D)zlAcQ>2@`Ep`QU52K6d=%iUD05`O=dk!dQ{(3Q;L_jWe0;jq?hcutox1C*C+T zEaWx#HuC{zomqGrocTt=KJzD$zkuoG6vDCOgMN?8>1);Nrpr{ z8z&8vfPYmiejSHRD^2ESda}*(~0@i+S zcOx=PxZHkcEmAdS_{qQq#hOLXerjk zX{$MBSrOwli`>d)2KmUrdd*v=aUc4IAN`qp zD_G4gPX>Rfai^(PP;{n+^94C=sHGx}nhSa*66mt~9 zRo!=fk`@Fp*rr9ry^lZ?7QJH`NRqSDU5oAxFVD&b9(m^B{;W~p$4Bj&*)58iPs7e~ zy}55Ef}%>T$tdgPCSFEwQsc6M`q-tZaQ4!8+%Y9a#OOf3^bMCWH*PrJYt()rOxb6- z<%v_JFO^M~M0Ky5`}WeWNz#_gZPJ`s5?$5M+10+LY|z7~jt))c%yyyb_wiPDYxGliOcr`lyBtT{O$Fb+_ zM!%;aH*+o;i1}67waH^!(_msZEWIs#88Xu|%J!DlZU~TVD?ebd>k&NA`h59>Axpn4h zDLT@ur}@9sxtouLc8k|($a{_Y3mD!%y`>5s-=ZoobcH847VG9)>H@cf59v7}OybE7 zl%HvFp6MleMwjBnWRL4}$;$I(DBGlmtEjv(VAsCB_M9gvh_SST>EW{FM#Q3MY@P)& zLw|Ds8(qG1Hz`d-qzIVCDH-*?RY3dgJqD(M8~Dsg&Og&h@$WHjq3lm={_u2Yz_^A9 zOUd)bb<;6KLD2|XAdWGpUkw9#}D)u#ROqvU`@c?%AqDo#btP(ks{i>{AN z{r#yRelFB~m_lFN>(ukyTu+M^LVJ;?t=a67nlLN}6;Q?29_XYoXXUiCYMR@w;s!Oq zln&v&6D`C3X3P89!#EQfbl3a~zCB%j7Oeb;Pq5$7XKY(nXXb^lTUpQ4Q07FEx>3qD z9&@A3f7eyZLUSl2c%){4t6H;O>I|<+XdMk2m|uzZ-LtcjwbE}Iztcsq27aKWGo)&| z$GRj4Cp~SS!1c6uu>5`+XxUGuDz5id;oe(qllB>Iqy!ORvqDK$$7MNJSBrA;yB=AO z69$&UUf-AKfE3EM#;MFBwpy4HTI(2?qh$&_AP;B$@;Rb6>*%jfYzo^K0W83l#SYl+ zqMtsot*q_Mz*fh5mBgTC8BqmX58<|vnVa8jF?n*(P|67JvRJB7_MsX`T$iB0znjl( ztd!F+`P{MxK}HfmLZPp+n1PGIhil;|bMPpCQ)8NDd|&{cjlBnx49f93P-a`6{*O`8pBU58JX#ag8a{{{@ z(b;HNos55-vG)jm`bVSXXzPXnczeh-slUQ)&2a1cJdNPO5xTf@6_Q#amB@e7( zrkwiSg~+jC-12ulAmyS=JhR8~^|~KJC(VsX_r|Bhlodu^bw71dmh~~u&FVw5awPP~ zvX$hR;w4*d3ahs5rByrd*v0PhxrsH1RvrGcdQuR|a933UwSx1=e?QT3mgmJ|-nZMp zSCoHlg(A{wCbR*EJ_X*mXO1=2wFDa|T3eb}7@hbR_f0Fxy?cZbZEB4@O`@%lUU|is zMG+zUp$st|k~T&wHp`1q6}@h-KUlv>;W1xB^@~<+wM-k0{J`9YR4-5=&fiZySKeB{8vjVneHs*R3x+Z2U zFU$>FqDTGpk(}ys1hsP-<~JOSqIC@;;+f;@9-C<5X>>Lvq+d_MX0=0E_e5vy&Mzov zm%^R+;Brq#AbpoFfgy%QR9qVVRt%;yE+dvmOeV~$dx3^A83HP40k`mOB~7oDTL}u= zE+(w2WXM_f7-cUX3@w)*KL0l0R~*1Z*I11t97WR`#7es#lISingf z6ckj;Wj{_0_u`S#UI@n1w>o&ljbIR6V`bf@yWWZ*`O&JdnUZ)fD!z~Slij5x4+)BLX}(FNHwedwX<@=@FuHBkk{|x^wDL-# zxN8Hs*DkQ~Et=oT>rvc0F*|ty0f8tnCSRCEOXOv5;q5AnDNI&hm@MpS==fIU(E)F* z4{|#`FwSvjGHe=?K;oqeI-2PZ{1=Rn$&?f9XXfzo(r9ym2As2u|g}BBYJ7 zNBpHNC$Mmswu8xym2~9xIY1{e5|S3m9*LK>%)lLp<4}Fmrri%#U@Sj)7X-crFcZ%zeDpoN6VXryVeG)@2r=p4}qjp5r)q+sbR! zx^)7Uot!7U8!Og+Dx6oGp*>X0&ZS#kaHE@KJP)~j1P?GNSYC+NbDIS#F3as#%yun~ zd<$i^7mPWlTkHe5w&kR+5I%xRqp)I>Nj2vTwj51^;zvD7T4BZ}81piYZjk7Ogge6o zwZ&bu8X~uS)Ns+Caw$64zuvU?6C1xX_ui26?dI8vg4aE`xs2y1pxOyq#5A5~{Al>TO|`fWjG!`SSiu^>0fiYOnM>3jNAf1{*|*>W*{fgq-m@`FMqx9l!e+Nt zuqyQZdu+TPw);@w14@01oyR5(-Dz;IkO@6#qoc)oa109+>eeNUN2!lLvx_Q-Fu1dggHI&SVGp>NdJ$XlX1cKIiab zQmy26g`h?+?e1wsrSrRF%dSfdJU+`d3=Qeppwk?@*LM!8*X9{Ba_WT5_!a;X?1X`I zK8RBm&jb=aS`rXOWzKjSl^LY0TYAc;nqETb^d9^LWzhru1*Oyz`x7;nuBAP*^;C&t zTgeNOy&n7p1!IMsB_eBQ=vgW|x2uS2VVyd>LP~QE3t2ew{nD(nt@o?lnj&Bj(xx#e zj1WGHK~Lds>e7A*3p=KXrnmpEn3>XA3S(L<+0!b7)jbEnSk3WC-HsqViq2yR2SDkf zy;i}>r6N*#K?Vr(D#$vGiXLV`x|i~)rkBtNFV4T9rCv6FK|Q?C|ANwDg`GzGOo?Ms z6lss3;yU%fB{Wn*3;)yuucQXgQW;T16YIIeslySe%rhh@_RaK4Q}+64J?1d@fkEU0 z2{s@-!gGSDeUwOgMldxO3FZR$55atpI+k!uFzjgO1f$2$>30?t-E)Gug#IR&OXzQc zxrF{Em`mt6!JH`pl&!}Fg1LyE6O0Gd;u*mZBAycrp-(}=Il&O72`}7U!E!b@CK!ba z1VbITc}6gAE)vWI@E?M?Pqhe0I3}1{h6@A}D7AMMmHQV6<`VjwU@oD*3FabtPB0hI zbAmZj0w5SdgmZ$qh@KM+p?5*fSt{e66O0~BXT>?e=w%*0ivtKI_n2VnFA&Td2|nOS zb^JJEzj1+Jc+SCp2!_zt8jx^8Fh4I4Og$CpKT)|rFqhEZ1ak@fO)!_x-vo0JJtvqm zB>;laBRMCSOXzQc(PQd-b(YG{FAz+w6w(EP@!qZZ01To(CYbjZ2?lHS(HX(eTp*aS zbMQC8P<0+lI3^gm3k37t%R2QeD%j@)a|!)TFqhEZ1ak@fO)!_xbAmZl;+SBhFA&T{ z^qgS4r9974neGC?&{2`5pAk$yXj~-eAjhZDPL^PICv4$17sPpgQwR7?aw^t|2IRaI z%lJaUJ0!}nk|Fz%XcDD=oYs|G`7on0(mPfzJxj^`dAkv zBU(~m&}WJB=W7Pq4oqiV2g6Q|=#e}K{zIcExtYS*!YyDgTS7xr9mcfsT~#Mq_A`x) z`dv49a@RG#-FK?m;j&D=mH^PUB%cqN&nKPImUL1N@i9h@6{Ir6sa%U*Zi&vNYKjMd zz`W)%NI1l4Uen6kH(p6XY`bfDAlgQ=a(mp@%3E0>+soruijg7yirG&d(B8U&okU24 zF|teD2()6eFsC&-m##^<1GB==yG{6LUu#@hVJ@C>Us=|1v)^bMdp=$Z2YqZl)UJqp zXkI`YCyA1%S|`6YCDz$t=?%Ied#i)?Rudg*!LS<{cw2x{TZ~4D$P5|IFQ=)fa*~TG|&ax5xu>!7_iH z`_JerE6L5e|FXZN;GLv11(TFn-CU+=da}vX0c%c`9aK(UIGHezeFuEHj_o@}=!yPC z8FKxnMuNaifboE$i?HnEIa=!yLMk;h^G|1YZ2K)KIPpR2NgIF>%bu662Q<%0|#(^IFXyHHy) zpD3uZF*2rcVp$gcI+@Dpr@7I)8mDu&>F8UfTY$L6RG#P4O(FI+J^h>Z|Xy%Nj#JKKmXVu4cP6O~dMp__!qN0C!zO!g47;uzz)dbRj>M zO;=q#Ke4%Kck#ojn1egpgWAr`pFy<&ZVE! z&{96Jz=gL$eoLn-Pu|hmDnD~i#)16j>VhCcWT5P!@@SV6-g+Nz^OFqg==`waWZv*X zw{@m!ndP<=|C>X4j)uGI9Lg9pm7xNula;p)r$MnzhwUlCTm6;0)kZde$?t!LV&9(3 zyCJ*Hw25ThXq4*$I-+gV89LNDT4@`t*r{uP98SgxZ_c!0K(-(*OH)$>WJiO82dr~g zqDBn!Z4tF8@jJoO_yuuL45LsRwWdPaG^Sz_=+661g?D?kqmH}FM@v&-_9G`dk@c0W~XX z&2B4lQVUKTJe;*oE;G{ZZOOEMK2;cOzC5G&I^S*(cus7BsGJ4u@H7$G)Kd50_bIIMRFq?MPxwo|_)BaEZB3C@jHkdcHW6qs2 zXc1wqzP4Ya*=1hb0^D^TT%0W$G}P=7s9gMJJxH2=tctBm>0(8HC}$f4$~L_D#jH7E zx>zvE0%}|YZnYj%PYcqH6xt&2>F4;N_o>V1VJ9uf>X2hOb8&;>z0lftzR`%okUYW9 z{&!Hb-J#YP7NNBmi(o-fwV;va;F2TOR{8{)#IDiuMbr4i-r<8(=Lc;6EtPy{`hk>LvlsH>gj) zf9-O3iPrd{@9CKeqyZ?wa!-WrP!w%U^+{7FaKTb-O#sS znbpk=^TocEux;TFhXwA+!wkOuW^tw(k7~L2+VWp5H}}r-GcbO=(fifl3H__CXLhq~ z1$t?;>W|nEL5}@`OO~@O+J|@`jtTG zjc%~~#wt0#U1UOS+FdS0(v-%*Bc<}J*ckR@YW{(Acl%_$AJZ@TI5}UEIUKBaJp;Nf z{yc<8vSY1h04(PQ-eiAx065{%wX~PEFaX<~w5D_hJ%NEkpa_Ly4|wSTPanWdeyjTH zm#=ZC1}ShWN_2>TfWNHqiO;}P1n{s9aDs#dG)(*Nlmj@REsPy3dqxaAf6s^4$l+b#C;QP#W!sdn#KRcr6%njn=Y#=&Z``DN1|*Gj~VcX31p#;QolkHx-nZr z{;qfZP`6xsk|~B(H_GFAkspVpjac3elz&Ing*b=ROZTwSTV1r1aRr&d%5jsniTtm5 zrz?FO(;LV;tZOhZm>2U-_t~@mrrmL^p1z`jL?DA~Xzt6`Hp$V3iFp?vp}oq~lj2|h zs0$lZWb`0e|3e;)S7zWsuYXZseZTF%+X<-MuDJ9tDWA@IKu6sp@5y*v1bAXog3Wh! z15V|;Oei!sPk-valp%qwi$2^IF}IWpXoSTl!TN~Jte_$7UF81l$Lq;2GB{R7UW1>* za!sP#_l!sRkZE$7S5>NCQFK4jN!q%{PMhtpJKD}S@CqaLMMLcu4JYYFep4?%DqroM{`IGhtOH*Xfs129m>VDV; z1c<{aHN(O&182d1|B1^#;ri$Lmmj=5lD#b8a&!GZ6OXSAKuug|wZA&?YIE_0sla38 zN~`hJ$(I{sFHD882Y$NquiIs>%DLJwc`hjz<+l=lv`=1@a<${|TuKq@iIl7ThgSt$ zZGbozU<`CH0_L2zLtLGD^@#s`Y87zee?0Z-f&WzrR}baSB`Dzit0VfWGOq4&&Si)* zUG?K%_dHhxUfndD3%t*KRp8Yv#8p|BHwWjEU|`Y#S$}L5u1>$q@fW94v0a#c#`uq9 U5l;3f=s+inE>HnucaCTL50TN$S^xk5 literal 0 HcmV?d00001 diff --git a/package.json b/package.json new file mode 100644 index 0000000000..a8deae274d --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "xvba-app", + "version": "1.0.0", + "description": "A XVBA App", + "main": "index.js", + "author": "LocalSmart", + "license": "ISC", + "dependencies": { + "excel-types": "1.0.0", + "Xlog": "1.0.0" + }, + "devDependencies": { + "@localsmart/xvba-cli": "^1.0.2" + } +} \ No newline at end of file diff --git a/ribbons/customUI14.xml b/ribbons/customUI14.xml new file mode 100644 index 0000000000..6ea3b36cee --- /dev/null +++ b/ribbons/customUI14.xml @@ -0,0 +1,15 @@ + + + + + +