No matter if you are in VBA Development Business or in any other business, acquiring a new customer is anywhere from 5 to 25 times more expensive than retaining an existing one,  states Amy Gallo, from Harvard Business Review in her article.

In that same article, she cites a research conducted by Frederick Reichheld of Bain & Company that shows increasing customer retention rates by 5% increases profits by 25% to 95%.


What is this article about?

Most of the articles I read about Microsft Excel, Microsoft Access or Visual Basic for Applications (VBA) misses a piece of critical information.

You can learn about creating Dashboards, Power Query, Power Pivots, or how to use VBA code.

These are all helpful, but they miss something critical.

They lack the answer to the question:

How to make money with Microsoft Access, Microsoft Excel and VBA?

You see, at the end of the day, it’s all about customers.

As I said and gave evidence at the beginning of this article, too little attention is given to the retention of existing clients, as opposed to acquiring new ones.


Why should I care?

Building and fostering relationships with existing users don’t just mean that you care about your clients but opens us to countless new opportunities for new sources of revenue from them.

In my 20 years as a developer and 15 years in building companies as a CEO or as an advisor, I created or helped in creating many companies.

All these companies are mostly in the IT sector and are focused on financial projects.

Since all these projects are about money, mostly other people’s money, enormous attention is placed on Error handling, Application usage and Performance monitoring.

Do not misunderstand me, I’m not talking about huge applications. I’m talking about Microsoft Excel and Microsoft Access desktop applications which are programmed with Visual Basic for Applications (VBA).

But if you work with these applications (Excel, Access) you do not create games, you create applications that work with numbers, with money.


My recent project or challenge

Recently I signed a contract with a large multinational bank, they hired one of my companies to make them few smaller applications in Microsoft Excel and Microsoft Access, for their internal use.

Managers wanted to, among other things, track the use of these apps and certain parts of those apps.

Until then, I did all the application monitoring, usage tracking and logging for desktop apps using standard procedures – write to a text file or a database.

But they wanted to track it in real-time, online.

There are many applications on the internet that enable us to do this.

Application performance monitoring, Error tracking and Usage tracking.

Not many of them work with VBA projects (Excel workbooks and Access applications), but there are some of them that do.

After we selected several and presented to them, they rejected all of them.

They do not want their data to go to someone else’s servers. Ugh! But they told us we could use Microsoft Azure.

Microsoft Azure has a service called Azure Application Insights and that’s exactly what I needed.

But the problem is that Azure Application Insights does not work with desktop applications from the Microsoft Office family (Microsoft Access, Microsoft Excel) directly.


And so, the project VBA Telemetry was born!

What is VBA Telemetry?

You probably know or have heard of Google Analytics. A tool that tracks and reports website traffic. Similar to Google Analytics there is a Microsoft Application Insights.

From Microsoft:

Application Insights is an extensible Application Performance Management (APM) service for web developers on multiple platforms. It includes powerful analytics tools to help you diagnose issues and to understand what users actually do with your app. It’s designed to help you continuously improve performance and usability.

But now with help from VBA Telemetry client, we can connect our desktop applications from Microsft Office product family (Microsoft Access, Microsoft Excel, Microsoft Word, Microsoft Powerpoint,…) to Azure Application Insights.

So, what is VBA Telemetry, in one sentence, please?

VBA Telemetry enables you to Track Events, Errors & Metrics from your VBA projects (Excel workbooks, Access applications, Word documents, Powerpoint presentations) in Real-Time by connecting it to Microsoft Azure Application Insights.


Asynchronous Logging

And the impact on your app’s performance is almost none. Tracking calls are non-blocking, and are batched and sent in a separate thread.

This is why we say “in almost real-time”.

Asynchronous vs Synchronous


How to Track Events with one line of VBA code

You can track events with one line of VBA code:



After those lines of code been executed we have in our Microsoft Azure Application Insights resource:







Here is a short Youtube video (45 seconds) on how to Track Events within your VBA project by sending telemetry data to Microsoft Azure Application Insights resource using VBA Telemetry client:


How to Track Errors with one line of VBA code

If we want to track Errors we would insert one line of code in our error handling procedure, example:



After those lines of code been executed we have in our Microsoft Azure Application Insights resource:


Azure Application Insights Reports Tracking Errors -Error Description


Azure Application Insights Reports Tracking Errors -Error Details


Here is a short Youtube video (50 seconds) on how to Track Errors within your VBA project by sending telemetry data to Microsoft Azure Application Insights resource using VBA Telemetry client:


How to Log some custom Metrics with one line of VBA code

If we want to log some custom metrics, for example, to track loop or procedures durations  we can do it with using the TrackMetrics function and passing the Metric name and the Metric value, like this:

After those lines of code been executed, we have in our data in Microsoft Azure Application Insights resource.

But to be able to see and query this data we need to go into the Advanced Analytics. In your resource Overview click on Analytics:



This will open a new application “Application Insights Analytics” where you can query all your data in this resource.



In Application Insights Analytics you can write your own queries using the Analytics Query language and represent them in various visualization forms (table, charts, export to csv, to Power BI (M Query),…)


Here is the query for data collected in last 63 minutes  in our example represented in a timechart and ordered by timestamp:



Just a preview of  translations of the most common idioms between SQL and Analytics Query:

Here is the link to the Cheat Sheet:

Here is the link to Microsoft Analytics in Application Insights documentation:


Want to find out how to connect VBA with Azure?

Full course on how to open a FREE Microsoft Azure account, create your Azure Application Insights resource, connect your VBA project (Excel workbook, Access application, Word document, Powerpoint presentation) with Azure cloud using VBA Telemetry client and collect your telemetry data you can find in my Udemy course “VBA Application & Usage Monitoring Online with Azure cloud”.

In less than 24 hours after the course was published on Udemy, there were more than 2.700+ people enrolled!


Udemy course “VBA Application & Usage Monitoring Online with Azure cloud”



Want to learn more about VBA Telemetry project?

The homepage of VBA Telemetry project:



  • 8