0

I've developed an Excel add-in using the Excel-DNA library. I'd like to create a guided product tour for when the user first installs the plugin. I'm looking for the traditional product tour workflow where the window is dimmed, and the plugin features are highlighted with textual description and arrows to navigate the tour.

I've found a plugin called AbleBits that has a product tour that i'm looking to build. However, I can't find what library they used to build it, or where I should start.

The AbleBits tour

ashleedawg
  • 20,365
  • 9
  • 72
  • 105
user171943
  • 1,325
  • 3
  • 12
  • 18
  • Why don't you ask them via the "About Us" which software they are using? They would probably share. – Vityata Mar 22 '18 at 16:38
  • AbleBits is on the "Microsoft Partner Network", and is a "Microsoft Visual Studio Partner". It seems like this kind of thing is possible through languages other than VBA by using this: https://msdn.microsoft.com/en-us/library/windows/desktop/dd940497(v=vs.85).aspx – elliot svensson Mar 23 '18 at 14:43
  • Thinking more about it, having a guided tour kind of implies that the developer really does have this kind of confidence with Microsoft... perhaps it was done through locked mechanisms that Microsoft doesn't give out to just anybody. What if the add-in was an elaborate phishing scheme, for instance? – elliot svensson Mar 23 '18 at 14:46

2 Answers2

3

I work for Ablebits.com, so I am sharing first-hand experience:

We did not use any components (libraries) to build the tour. It was done by drawing on a layered window (https://msdn.microsoft.com/en-us/library/ms997507.aspx) that is placed on top of the Excel window.

The background of this window is made translucent so that the Excel window can be seen, while the pictures and captions are non-transparent.

To highlight the necessary elements on the ribbon, we find their coordinates using UIAutomation and draw a fully transparent rectangle in that place. The interaction with a user is implemented by making the images of the buttons in different states and processing the mouse and keyboard events.

  • Thanks Alex, that is really helpful. I notice that for highlighting the tab is actually activated, is that also just an image overlay? or do you activate the tab by sending some special key? – user171943 Mar 28 '18 at 19:00
  • To activate a certain tab on the Ribbon, you need to get SelectionItemPattern of AutomationElement corresponding to the tab and call its Select method. This equals clicking on the tab. – Alexander Frolov Mar 30 '18 at 16:57
1

Build a multipage form with a next button bottom right. Offer a "Do not see this again" checkbox on the initial page of the form. Simply walk them thru your add in page 1 click next to page two (which has a 'back' button bottom left) onto page 3 and so on. Final page has a finish button. That's it really.

You can store VBA values (state, such as the do not show again boolean) in the registry.

Ronnie Royston
  • 16,778
  • 6
  • 77
  • 91
  • I am looking for a more interactive walkthrough as shown in the gif. Is there away of accessing the ribbon my plugin creates and highlight the area, and show text? (while dimming the rest of the screen) – user171943 Mar 19 '18 at 04:24
  • Of course. Just toggle the color of the ribbon element on whatever event you want, whether a 'next' click on your intro form or a timer or whatever. You have access to the ribbon. – Ronnie Royston Mar 19 '18 at 18:21
  • 1
    See this for more help on the ribbon... http://apprize.info/microsoft/excel_2/18.html "Microsoft provides no direct way to activate a Ribbon tab from VBA. But if you really need to do so, using SendKeys is your only option." – elliot svensson Mar 23 '18 at 13:59
  • 1
    I bet a dollar that AbleBits has done exactly what Ron Royston suggested, but cleverly made it look like a living guided tour on the program. – elliot svensson Mar 23 '18 at 14:00
  • 1
    Can you reach out to some official Microsoft person? They care about developers and would probably help you. – elliot svensson Mar 23 '18 at 14:03
  • 1
    Here's something from Microsoft... https://msdn.microsoft.com/en-us/library/windows/desktop/dd940404(v=vs.85).aspx – elliot svensson Mar 23 '18 at 14:08
  • 1
    Here's something better from Microsoft... https://msdn.microsoft.com/en-us/library/bb386097.aspx – elliot svensson Mar 23 '18 at 14:26
  • @elliotsvensson Thanks a lot! I reached out to ableBits, but all I got was that they built the framework using their own paid framework. I also noticed some weird behavior in the tour like it auto sizes the excel window to full screen before it plays it. Is there a way of capturing keys being pressed to see if that's what it's doing? – user171943 Mar 23 '18 at 20:08
  • multitab form. ...it's been a while since I did MS VBA but I did exactly what you are after. It's just a form that you popup if the registry key is not set. VBA gives you ability to set state/keys in a special place in the users registry. That's how it's done. – Ronnie Royston Mar 23 '18 at 20:22