Are there configuration settings to remember docked toolwindow positions in the VBE? - excel

I've just installed the Rubberduck add-in.
If I configure my vbe windows so I can see your duck-windows it all looks lovely but when I restart Excel it is back the way it was before: is there a way around this so my configuration of the vbe persists?

Yes, it is possible to configure this, but no, it has not been implemented yet. Essentially, this would involve remembering whether the dockable windows are currently displayed when the add-in is unloaded.
In order to do this, Rubberduck could store these positions in the settings file and display them when it is loaded.
If you wish, you can create an issue for this, and the team may implement it in time for the next release if it has enough support.
Full Disclosure: I am currently working on the Rubberduck Team.

Related

Office add-in ribbon button

I'm trying out the new style JavaScript based office add-ins and can't see how I can add the add-in launcher button to the ribbon.
I know that Command add-ins which can add tabs etc are not released yet, I'm just talking about a button that will launch my add-in.
It's a TaskPaneApp.
It seems to be possible because (in my version of office 16 at least) I can see that under the Insert tab, Wikipedia add-in has it own button in the Add-In group.
Currently I've just added a Shared Drive as a trusted location and am launching the app from there. As this is an internal app, it's likely to stay there.
Thanks
You just need to add some elements to your manifest file:
https://msdn.microsoft.com/EN-US/library/office/mt621545.aspx
Make sure you are using the latest version of Word, Excel or PowerPoint; it must be 16 or higher.
Also, make sure to use HTTPS requests.
The XML manifest is super sensitive.
Look for closing /> for all the tags, because you might be missing them somewhere.
You could also use this NPM module which is supported by Microsoft to validate your XML file.

Set a custom application Icon for a Class Library deployed using ClickOnce

I have a C# project in VS2012 with an output type set to "Class Library", in fact it is a VSTO word 2010 add-in, after publishing the project and installing it with ClickOnce, I notices that the icon used in the "Programs and Features" list is the default icon, which is not really professional IMO. I would like to be able to set a custom icon for my application but as its a Class Library I'm having a really hard time figuring out how to do it.
In the "Application" tab of my project properties in the "Resources" section, the "Icon and Manifest" option is selected by default but it is disabled so I can't select and Icon file. I fear there is no way to do it for a class library project, but I haven't found any confirmation of this either.
Thanks for any informatin/help you might give.
After searching for a couple hours I think this is not possible right now, see this link that I posted in a comment on the OP above. Its a bit sad as it would look a lot more profesional if we could put a custom application icon on a vsto addin that would be visible in the Programs and Feature list in the control panel...

Solution for Deploying & Updating Document Level VSTO Addin Including the Document

Do any of you have advice on methods for deploying an office VSTO addin, especially Excel, that makes it easy to update and deploy the document as well as the addin.
I have a document level addin for Excel 2010 that I created using VSTO. I currently deploy it using click once. However, this has a few problems. The first problem is that I publish it to ftp then users install it from my website. Since the document and addin are downloaded from the internet, I obviously have trouble getting proper permission for the addin to run and the document to be trusted. Currently I just have users manually adjust permissions and grant access when the solution is installed. That part works and is fine, but if any of you have suggestions on how to automate this that would be great.
The second problem, the main one I am wanting help with in this post, is deploying updates. I generally like using clickonce because of its ease of installation and automatic update features. The solutions I develop are used in rapidly growing fast changing companies, which means I am often making updates. Click once makes it easy enough to update the "code" or addin itself. I just have it automatically check for updates when it is started, and if there are updates it will prompt the user to download them. But what about the document? My solution doesn't only include the code. It also includes the highly customized Excel workbook.
When the solution is initially installed a copy of the workbook is just downloaded to the local computer. But what about after it is deployed to dozens of computers? Does a document level change (adding a column for example) mean going to each computer and downloading the updated workbook manually?
Surely there is a better way to automatically deploy updated versions of the workbook. Any suggestions?
Here are a few ideas I thought of:
Use some installer other than clickonce. Any suggestion on one that allows easy automatic updates?
Somehow package the workbook as an application resource. I have actually done this in some situations, but not in cases where the document itself included a VSTO addin.
Related to the previous idea. Make a "wrapper" project that includes the workbook & VSTO addin. Then the addin would be launched by clicking on a regular icon on the desktop, which would download the workbook (if an update was needed) then open it in Excel. I would prefer that method of launch over simply opening the workbook anyway.
Note: No user data needs to be preserved in the Workbook when an update is done. The old version could simply be overwritten by the new one. The workbook gets all its data from an SQL server.
You could use a Visual Studio Setup Project which leverages Windows Installer. See this deployment walkthrough guide on using VSTO 4.0.
In Visual Studio 2012, support for Setup Projects is being deprecated in favor of InstallShield LE which is another alternative.

Multi-phase MS Office Application Level Add-Ins

I am tasked with upgrading a current add-in, and creating a new add-in for Office Excel. The requirements dictate that these solutions be implemented as application level add-ins as opposed to document-level. Each solution is isolated in a separate group within the same proprietary tab on the Office Ribbon.
Is is possible to have multiple application-level add-in solutions or must these be contained within one Visual Studio solution. If they must be contained within a single solution what would be the best practice for tabling (and hiding from the end-user) the solution that is still a work in progress? \
---APPEND---
To clarify, I will define each programmatic entity to be accomplished as a task. Each task is contained within a single group on the Ribbon. All tasks/groups are on the same custom ribbon "tab". How do I release these projects individually to end-users? I should be able to release Task-A to to end-users without worry about the status of Task-B even though they are on the same ribbon tab?
There is no issue in having all the application addin under single solution, I preferred to have it in a single solution in my projects.
With regards to hiding from the end user, if you are going for Click once deployment then just publish the addins which are ready for release. Even if you go for MSI you should be able to do the same by deploying only the addins which are ready to release.
You could also hide the ribbon tabs if they are not completed yet. Hope this answers your question.
Reply to your Appended Question:
In our project we just hide the buttons from the ribbon by setting Visible = False so that the QA or enduser could not be able to see this hidden button. Eventhough there is unfinished/untested code they are never invoked.

VBA Calendar Control Different Versions Issue

I've built a simple Excel tool that uses the additional Calendar Control(mscal.ocx). Everything worked out fine, on different systems, however, the calendar seems not to be implemented and instead of just not showing the date picker, the whole form crashes.
Is there a way to implement the calendar control so that it runs on every system? Or do I have to code a datepicker myself?
(Office12)
Whenever you're using controls that aren't native to all operating systems and versions of excel, you're asking for trouble on other computers. Often, when developing, you'll have access to forms that don't exist on most systems, and only exist on yours because you have Visual Studio installed, or a special Microsoft Office package. Whenever such a problem occurs you have 3 choices:
Work your ass of to try and package the missing controls (mscal.ocx), and try to create a deployment script for your users which will copy it to the System32 directory and register it. This is a pain because there is usually a large chain of dependencies for a single control.
Deal with the fact that some systems won't support your tool and warn users upfront or provide a virtual machine that they can access that and that your tool will run on.
Reinvent whatever fancy control you're using with basic buttons, list-boxes, drop-downs, images, etc, which is the biggest pain of all and often requires you to compromise some nice functionality.
I've had to do number 3 countless times for excel 2007 tools that work on XP systems, but not Vista+ where certain ActiveX controls (i.e. Datagrid) are no longer supported.
i would build against Excel 10 (2003) as not everyone might have new Office 12 (2010).
or see if you can reference that ocx locally and deploy with your excel file
You can do this without the calendar controls.
Like this example here

Resources