Page 1 of 2

Step by Step explanation on VBA DLL

Posted: Thu 5. Sep 2019, 11:37
by shank
Thank you Mr. Jetter for activating my account.
I am facing difficulty in utilizing the VBA DLL feature of memBrain. As instructed in Help section of memBrain, I downloaded the "VBA DLL Example" from website and followed the steps mentioned within test-box.
I am using 64-bit system therefore, I copied MemBrainDLL.dll into C:\Windows\sysWOW64. After that, I started MS Excel and from developer tab I started UserForm1 which was blank. Pressed F5 but nothing happened.

I am doing something wrong but not able to figure it out. Please help me.
It's kind of urgent.

Shashank

Re: Step by Step explanation on VBA DLL

Posted: Sat 7. Sep 2019, 15:38
by TJetter
Thanks for the request. I will try to look into this asap.
At the moment I would assume that it has something to do with access rights on your machine.
- What version of MS Office are you using?
- When you double-click on the entry 'UserForm1' is this what you see? Or is the form empty (i.e. without buttons on it)? May be you can post a screen shot?
MBInputQualifyExcel2007.png
(25.08 KiB) Not downloaded yet
- Instead of pressing F5: Can you identify the green <Play> button instead on your screen and press it?

Re: Step by Step explanation on VBA DLL

Posted: Mon 9. Sep 2019, 06:09
by shank
Hi,

I am using MS Office 2010 version.
As far as "userform1" is concerned, I have to insert the userform1 from INSERT tab. I do not see the entry "UserForm1" there by default as shown in the screenshot shared by you.

What kind of permission, I am supposed to give in order to run this smoothly ?
____________
Shashank

Re: Step by Step explanation on VBA DLL

Posted: Mon 9. Sep 2019, 09:33
by TJetter
shank wrote: Thu 5. Sep 2019, 11:37 After that, I started MS Excel and from developer tab I started UserForm1 which was blank
Just to be sure:
When you say: "I started MS Excel" means that you opened the file "MBInputQualifyExcel2007.xls" from the downloaded file "MBInputQualify.zip", right?
This file should already contain all the buttons on UserForm1 and also the code behind.
In my (German) version of Excel 2007 the tab is mentioned "Entwicklertools" which probably is "developer" tab in your English version. OK so far.
If I then choose "Visual Basic" on this tab I end up in the code editor and can see the code and also the UserTab1 which is pree-filled with the buttons.

Do you get a macro safety alert message when oping the file? Please check out your MS office trust center settings as described here:
https://support.office.com/en-us/articl ... n-US&ad=US
Ensure that either all macros are enabled or that you allow execution of the macros in the opened file (i.e. on a file by file basis).
Important test: When you select the trust center setting "Disable all macros with notification" and then open the file "MBInputQualifyExcel2007.xls" you must notice that a safety alert is presented by Excel. If this does not happen then your file MBInputQualifyExcel2007.xls does not contain any macros. May be some virus filter has removed the macros during download?

Also:
Is it possible that some of the following settings prohibit opening VBA content on your system? I don't have these settings in my Office 2007 but may be you have it in your 2010?

Re: Step by Step explanation on VBA DLL

Posted: Tue 10. Sep 2019, 06:06
by shank
Mr. Jetter,

I figured out the permissions it required. But got stuck at something else.
It seems that we need to change the code a little bit for 64-bit (that's what program is asking us to do).
I have attached a screenshot for the error I am getting while running the code.

Re: Step by Step explanation on VBA DLL

Posted: Tue 10. Sep 2019, 08:07
by TJetter
There's a German thread on this already in the forum where the same issue was solved:
https://www.membrain-nn.de/forum/viewto ... ?f=3&t=506
Can you try to find your way with the google tranlated version as follows?
https://translate.google.de/translate?h ... %26t%3D506

Most important post here are:
When starting the macro in Excel my Excel reports (from Office 2016) first that the "Declare" instructions are not correct for 64bit, so I have replaced all with "Declare PtrSafe".
I've now taken a closer look at the 64-bit version of the dll and notice that the functions are obviously different - unlike the 32-bit version:

The functions start in this case only with ONE underscore and the supplement @xx is omitted.

Example:
32 bits:
__MB_AddHidden @ 12

64 bits:
_MB_AddHidden
Also this:
under 64 bit Excel the file 'MBDllWrapper64.dll' has to be loaded, not 'MemBrainDll.dll'. That means it has to be replaced everywhere in the VBA code. If it still does not work, please copy the dll file into the same directory where the Excel file is located.
Meanwhile I will try to catch up on this with the original topic poster and try to acquire the correct VB Declarations file that he created then. Unfortunately I don't have a 64 bit MS Office available to try things by myself.

Kind regards

Re: Step by Step explanation on VBA DLL

Posted: Tue 10. Sep 2019, 11:25
by shank
I changed the code as suggested and program did run for a while only to end up giving another error:
Run time error
File MemBrainDLL.dll not found

(Screenshot is attached herewith)

However, I am going through this exercise because I need to know the relative importance of variables as mentioned in excel file within textbox:
Thus it is possible to check the influence of every input neuron to the output neurons of the net, i.e. this can be a way to identify which input neurons are more significant resp. which input neurons could be good candidates for being optimized away in a neural net.
If this can be done without VBA DLL, I would be more than happy to know the method.

Re: Step by Step explanation on VBA DLL

Posted: Tue 10. Sep 2019, 22:09
by TJetter
See below:

Have you replaced the string "MemBrainDll.dll" by "MBDllWrapper64.dll" in all locations and copied the dll file to the same dir where the Excel is located?
The error message still talks about "MemBrainDll.dll".
Also this:
under 64 bit Excel the file 'MBDllWrapper64.dll' has to be loaded, not 'MemBrainDll.dll'. That means it has to be replaced everywhere in the VBA code. If it still does not work, please copy the dll file into the same directory where the Excel file is located.
You can perform the sensitivity analysis for the inputs also via a MemBrain script (i.e. without the dll). Here's the link to the corresponding forum post on this:
https://www.membrain-nn.de/forum/viewto ... f=14&t=511

Just copy the script to your local disk (ideally to a separate directory on your machine). Load your trained net in MemBrain. Run the script via MemBrain menu <Scripting><Execute Script...>.

Re: Step by Step explanation on VBA DLL

Posted: Wed 11. Sep 2019, 09:13
by shank
Made the changes and run the program.
After adding the node to program, it resulted into error
result = MB_LoadNet(fileName)
(Screenshot attached)

Re: Step by Step explanation on VBA DLL

Posted: Wed 11. Sep 2019, 11:41
by shank
Scripting is successful.
I got to see the pattern viewer and there are different graphs plotted...
But, I might need a little help on interpretation...