How to customize the Excel Function Wizard? - excel

I would like to customize the Excel Function Wizard, for instance by adding some buttons to the window and/or by firing a new event when the user press the OK Button.
I know that It is possible because the Bloomberg Excel Add-in implemented it.
I found no information about it on the web. I guess that I have to intercept calls to the Windows API and to play with the handle of this window to achieve this but I'm not sure. I see no way to do it via the Excel COM API or the Excel C API but I may be wrong.
Does anyone know how to do this ?
ps: I'm taking about the following window :
EDIT
See below a screenshot of the Bloomberg Wizard with a hyperlink for the optional argument that open a new window (not natively supported by the Excel C API)

Related

How to hook a Window Form within Microsft Excel from VBA?

I'm trying to hook a Window Form within Microsoft Excel itself like on the attached picture (This is an Addin called Kutools).
It is supposed to:
Fit on the right side of the Row number
Be Just below the name box
Be resizable and the window is resizable with it as well
Be collapsible or Expandable (like on the image)
I prefer to use the internal VBA of Excel to build and hook it as much as possible. But if I have to use an external Editor (Visual Studio C# or VB. Net ...) I'm willing to follow the instruction.
I searched all over the web but couldn't find a way to do this. I definitely appreciate your kind assistance on this.
Thanks for your help, I'm open to any suggestion!
If I am not mistaken, you are trying to create a custom task pane for Excel (add-in). If so, then this link might help you, but you need to build it with Visual studio using Office development tools:
https://learn.microsoft.com/en-us/visualstudio/vsto/custom-task-panes?view=vs-2019

Sign in to a 3rd party excel add-in from vba

I have a 3rd party ribbon (SNL Financial) add-in installed in Excel (2010 version) and I would like to have some vba code to automatically "sign-in" to the 3rd party ribbon. I've tried simply "recording" a macro that clicks on the ribbon and then clicks on the "sign-in" button, but no code shows up in the VBA macro recorder. Any ideas?
There is no universal "sign on macro" or method to login to all Excel Add-ins. Your best bet is to leverage something the developer has already built. Assuming you've already searched the web unsuccessfully, you can search your VBA Objects Browser which would be the most likely place to find any VBA options that a developer will allow you to use.
To do this, from the VBA editor screen click:
Tools / Reference. Make sure whatever add-in you have is checked in this list. It might not be the exact name so you may need to do some research to find it. Click okay to return to the VBA editor.
Click on VIEW / Object Browser. Hopefully you will see in the drop down menu that starts with <ALL LIBRARIES> the name of your add-in.
In the object browser, with you add-in selected, you should have access to view all API/MACRO tools the add-in has already built. Some of them may be intended for your use, and some may not. You might get lucky and find one you can leverage or take the code and research more on google for a solution.
Bottomline, there is no direct answer to your problem, but the above instructions would be the best place to start looking for your custom solution. Good luck.
Extra Bonus just for your particular SNL issue
For technical support contact SNL Support, visit this page:
http://sc.snl.com/SNLDSWebService2/Download.aspx

Cannot switch between popup window and Excel for Mac

I have made an Excel add-in, which pops up a window either by window.open or Dialog API.
I just tested it in Excel for Mac: when the window is opened, it seems that we can NOT put the focus back to Excel or the add-in taskpane; we have to close the window before choosing Excel or the add-in taskpane.
Does anyone know if there is a way to enable switching focus between popup window and Excel?
The dialog window is a modal in nature that forces the user to interact with it before they can go back to using the parent add-in/Office host. For interaction that requires back-n-forth with Excel, task-pane is the right place for UI.
The dialog API is meant to always show the dialog on top of other items. In terms of modality, you are correct that in Windows the dialog allows you to still interact with the spreadsheet while in other platforms, like Mac or Online is fully modal (cannot switch back to the spreadsheet). My recommendation is to design your add-in accounting for multi-platform so assume the dialog is modal in all platforms. As Sudhi recommends in his response, if your interaction requires the user to use the add-in and the spreadsheet back and forth, using a pane is a better model.

Creating a dialog Window in a native Outlook add-in

I'm creating a native C++ Outlook add-in (.dll) and started my Visual Studio 2013 project using MS guidance. The idea is to get user input from a dialog box when the user clicks a Ribbon button and then act on the input after the dialog closes.
Where I need help is creating a Window in the ButtonClicked function. I've tried all the wrong ways which include MFC class wizard and ATL window (CAxDialogImpl). The common denominator is I don't have a valid parent window to create another window. Even if I get an active window handle from outlook.
Ideally, I wouldn't take a dependency on MFC but will use it if necessary. I'm looking for assistance creating a dialog/window, any ideas on how to achieve this?
I get C#/managed is the way to go, but the requirements dictate otherwise.
QI the Application.ActiveWindow property (it will be either Explorer or Inspector object) for IOleWindow and call IOleWindow::GetWindow().

vb.net How to prevent modeless form from being blocked by modal tool dialog in ArcMap?

I have a vb.net project running as a toolbar extension in ArcMap. Each one of my tools opens a modal dialog using the .ShowDialog() method. My client wants to be able to open a PDF document from the tools that will serve as the help documentation tool rather than a traditional method like HTMLHelp or Windows Help Viewer.
So, I've imported the Interop.AcroPDFLib.dll and set up a form with an AxAcroPDF (veiwer) object on it. Whenever the user clicks the help button on any of the tool dialogs, the help form opens using .Show() and goes to the associated page in the document using the .setCurrentPage method. Everything works great up to this point.
However, as you can imagine, because the tool dialog is modal, it blocks the user from being able to interact with the PDF form. So, what I need is a technique to prevent this block so that the user will be able to scroll pages, click links within the PDF, etc. while the tool dialog is open. I.e., I need a solution that will mimic using the traditional HTMLHelp veiwer.
I've tried opening the PDF form in a new thread, but that causes ArcMap to crash at Application.Run(New PDFForm). Maybe this is because I have very little experience with multithreading, or maybe because ArcMap does not support multithreading. Not sure.
Anyway, any suggestions to get me started would be greatly appreaciated.

Resources