Santhosh
Santhosh

Reputation: 1397

Passing values from C# to VBA code?

I am pretty new to VBA, sorry if this is simple question or already answered... I tried by searching on MSDN but did not get any thing to implement this.

I am in need of sending a string (Host name in URL, e.g. xyzserver:4500/Home/GetExcelData) to VBA code before downloading the Excel to User.

I am calling MVC action method from Excel VBA code, getting some data and displaying in Excel.

My problem is Host name (xyzserver:4500) is different in different servers, I need to update the URL dynamically based on the server URL that the user is accessing from.

Basically i need to send server name to VBA code to update the URL in module. Is there any way to send and maintain values from C# (MVC Action) to VBA?

Session/ Application Cache kind of things are available in VBA?

Thanks in advance

Upvotes: 0

Views: 2262

Answers (1)

steveo40
steveo40

Reputation: 931

You can pass a parameter from c# to VBA in this manner:

Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Excel.Workbook wb = app.Workbooks.Open("your file here which contains the macro"); 
string url = "blah blah";
app.Run("name of macro here", url);

If you want to edit the vba code programmatically, then you would need to reference the VBIDE. Have a look at Chip Pearson's excellent website: http://www.cpearson.com/Excel/vbe.aspx

Upvotes: 1

Related Questions