I have a question regarding what is supposed to be backend and frontend for desktop applications and in this special case, an Excel Addin VBA.

My application contains lot of forms and modules. I assume the Excel UI and forms with events and basically the frontend, but what about the backend?

The VBA code fetches data and adapts it before it can be displayed in the forms, transported into Excel worksheets...

Are these modules backend? Or only the SQL Server with the stored procedures ...

It is not quite clear to me for desktop applications where all the code resides in client side if we can apply a split between frontend and backend.

2 Answers 2


There is no strict definition of the term "back end".

Wikipedia defines the separation between front end and back-end as

"separation of concerns between the presentation layer (front end), and the data access layer (back end) [...], or the physical infrastructure or hardware"

But this is just a rule of thumb, so what you call front end and what you call back end in your system is mainly your personal choice.

You asked

The VBA code fetches data and adapts it before it can be displayed in the forms, transported into excel worksheets... Are these modules backend?

If you have this part clearly separated in modules of its own, mostly independent from the UI part of the code, then it can make sense to call this "the back end of your system".

Or only the SQL Server with the stored procedures ...

If you think this separation is "more important" in your system, then call this "the back end", if you like.

I would recommend you decide which of the different options serves you most, and whenever you use this term, make sure your audience knows what you are talking of.

  • Thanks for the clarification. I was reading lot of similar questions and most of them allow some level of subjectivity
    – blfuentes
    Commented Jul 9, 2019 at 19:03
  • I would say the term is fairly well-understood for multi-user applications. The "front end" is the user interface, and the "back end" is the shared storage. If it is a single-user/standalone application on a single workstation with no shared storage, I would argue that the distinction fundamentally does not apply and one would not talk of front and back ends in such a case.
    – Steve
    Commented Jul 10, 2019 at 11:45

In general, your UI (Excel) and the VBA Code Behind Modules will run on the client. Traditionally, in multi-tier that would be the UI and Business layers. The back-end, or Data Layer, often Access or SQL Server runs on the client as well, but in many cases, or multi-client applications is located on a central or even a cloud server. The back-end or data layer is often the only practical physical layer that is separated from the client.

Don't over engineer a VBA application, only do what you need to do. I would not attempt to engineer an Excel VBA application with the same design patterns or goals of say a full .net application.

  • In this case is not about development of the VBA but trying to explain to the client the current status and what we want to do migrating the excel vba application to a new WebApp. So I am trying to document the best way these layers for a PoC.
    – blfuentes
    Commented Jul 9, 2019 at 19:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.