Microsoft Excel VBA Software | Microsoft Excel Macros
Taking Spreadsheet Design in New Directions
Microsoft Excel VBA is an incredibly flexible software development environment that saves you time and money on software projects. We have been creating Excel software solutions since 1998. Contact us for more information.
What is a VBA macro. In our Excel software design, we build a custom Excel based solution for your problem from the ground up. We design both general Excel projects (projects containing formulas, worksheet functions, charts, data validation, conditional formatting, queries, logic...) as well as Excel automation projects using VBA and a host of other tools that help with Excel automation. The types of Excel software projects we build include:
At EMAGENIT, we use Microsoft Excel as a software development environment because of its flexibility, rapid construction and its ability to flat out do things that other software environments can not do "off the shelf". These "off the shelf" capabilities also makes it very cheap to develop software in. It is also, in our opinion, the premier environment to visual data, integrate data and to perform modeling in.
All EMAGENIT Excel software design is done in the USA by EMAGENIT staff. We do not farm your project out to different countries and programmers. Your proprietary data and company strategies always stay safe.
When necessary, we also combine other computer languages with our Excel VBA software designs to get the best of all worlds. This again exploits the "off the shelf" concept so you do not have to pay for us to build things that already exist elsewhere. We will use Visual Studio and its elements along with various databases and various web codes to accomplish our tasks. Excel VBA integrates seamlessly with these environments.
EMAGENIT works on Excel software projects of all size, difficulty and duration. Our Excel designs cover the most basic of tasks up to projects that can take a few months or years to develop. We can develop simple automation projects to the most advanced modeling, data processing and dashboard style projects you can think of.
EMAGENIT works on Excel software projects of all size, difficulty and duration. No Excel project is to small or big.
As mentioned above, EMAGENIT can integrate other computer languages, databases and programs into your Excel solution to help get the job done. This is what sets us apart from other Excel software developers. It also allows us to do a lot of "how did they do that" type of things. We work in Excel, we use it as our main development platform because of its strengths, but EMAGENIT also uses any of the following below to create a truly unique custom Excel software solution. Basically if it can be tied into Excel in some manner, we use it.
EMAGENIT can integrate other computer languages, databases and even programs into your Excel solution. This is what sets us apart from other Excel developers and allows us to do a lot of "how did they do that" type of things.
We like to say all of the above is just kind of getting warmed up with what we can actually do for customers. We call it hybrid software design, take the best of each tool using its "off the shelf" abilities and combine them together. And by the way EMAGENIT does its own graphic design and builds its own website, like the one you are using right now. It is a good example of our work if you are wondering what our customer projects look like visually and functionally (unfortunately we cannot discuss any of our customer projects on this page due to NDA's).
Microsoft Excel and VBA have the capability to process data from all different types of data sources and data configurations. Using VBA along with the Excel worksheet, high powered data processing systems can be developed in minimum time and with minimum cost. The type of data processing tools we can build include:
*For actual report types see Report Generation below
One of the biggest problems facing business today is that their data is spread out over multiple data sources that do not talk to each other. The solution is not to build another data source and try to import everything into which by the way never works out as billed. The better way is to integrate what you have and get it talking to each other. Excel VBA along with the worksheet again can be utilized to read and integrate data from different data sources that can then be used for various exports and dashboards. The data fusion tools web can build includes:
*For report types see Report Generation below
The condensed definition of data mining is defined as the process of detecting patterns in data using various methods. While this is a very broad field with many facets, Excel VBA and the worksheet shine at detecting patterns in data and then processing the data based on those patterns. It is the worksheet and its "built-in" attributes that really makes it happen. What we can build in this area includes:
*For report types see Report Generation below
Microsoft Excel coupled with VBA is an incredible report environment with the capabilities to make all different types of report formats. Using VBA along with charts, the worksheet, formulas, pivot tables, pictures and drawing shapes, your imagination is pretty much the limit of what report type can be generated. VBA can also be used to transfer data to a variety of other programs including Word, PowerPoint, Outlook... basically anything that VBA can command.
After the raw data is processed using the data processing, data fusion and data mining techniques mentioned above, this is what we can build for you to visualize your data:
Another area that Excel and VBA really shines at is dashboards and in general visual interfaces. The difference between EMAGENIT and other companies in this area is we make them look cool. What we can build for you to visualize your data includes:
Microsoft Excel with VBA can be used to create cost effective program management tools that can be rapidly developed in minimal time. The tools can use either standard workbooks to house data or pull their data directly from databases. What we can build in this area includes:
What makes a system like this so flexible and easy to upgrade is when the database is taken out of the picture and replacing it with standardized workbooks housed on SharePoint. Queue the preverbal hearing the pen drop in the room. With the database out of the way, upgrade efforts focus on the visual displays and reports, not upgrading the databases, the queries,.... Adding project information becomes as simple as adding an extra row of data in a specified place in a workbook. We know, we have built systems like these that integrate hundreds of team workbooks and they consistently beat out the larger programs because of their flexibility and ease of use.
Microsoft Excel VBA and VB.NET posses an incredible array of tools to query and control databases with. The idea is to use Excel as a pre and post database data processor. The idea is to also use Excel as a database visualization tool. We also use VB.NET at this point due to its extraordinary control of databases. Excel VBA can run VB.NET making it seamless to the user. What we can build in this area includes:
Microsoft Excel and with VBA can be used to create interactive time sheet and scheduler type programs. The Excel worksheet takes center stage here again using its unique abilities for data storage and interfaces. What we can build includes:
Microsoft Excel, VBA and VB.NET can be used to read and control web pages and web based databases. VB.NET is especially valuable here with its built-in capabilities and again VBA can communicate with it seamlessly. What we can build in Excel VBA includes:
Microsoft Excel and VBA can be used to supplement inventory management programs. While it is possible to build one from the ground up using Excel, VBA, VB.NET and SQL Server, you do not really want to do that because there are a lot pre-made ones already in existence. That said, Excel and VBA can be used to supplement these programs by tacking on capabilities they lack, especially the older systems. What makes Excel so well suited for this task is the worksheet and its simple ability to act like a scratch pad and insert, move and delete data. Believe it or not, that is what makes it all work for this type of problem and makes Excel such an attractive place to create this type of program in. What we can build in this area includes:
Using Excel VBA, automated programs can be developed that sweep and correct workbook elements, settings and many types of errors. These style programs can rip through say a thousand workbooks, housed in different folders, and make global changes to them. These changes might include correcting and reshaping tables, fixing and renaming names, redefining ranges, upgrading formulas, fixing queries, upgrading pivot tables...etc. When the programs are done, they can log their changes results in worksheets complete with hyperlinks so you can jump to where the problem was located to see what was done. EMAGENIT has designed many of these programs to bring their clients workbooks up to a certain spec so Excel VBA software can then be designed to use them.
EMAGENIT considers modeling as anything that uses formulas on the worksheet to initiate its primary calculation sequence. EMAGENIT builds custom models for business, engineering and science from the ground up. There are so many model types, we can not possibly list them all here. What we will do instead is specify what we can do as far as modeling capabilities when we construct them. Normally when EMAGENIT is asked to develop a custom model, the customer specifies the equations they want to use and what outputs they want to see to so it can be a fusion of several categories of model types.
EMAGENIT develops basic formula and worksheet function driven models when the customer wants individuals with general Excel skills to be able to manage them after they are developed. We will also use built-in Excel data features to enhance their operational abilities. What we can build includes:
While models that use basic formulas are very powerful, one of our modelers use to build aircraft models using just that, the real kick comes from integrating VBA with them. Think of VBA as being a wrapper around the model that controls it and some amazing things can be done. What we can build includes:
A note here, user defined worksheet functions or UDF's are constructed in VBA and are executed from the worksheet like a normal worksheet function, think the SUM function. They can execute 1000's of lines of computer code from a single cell and work with any style application like Solver or Crystal ball that drive the worksheet. In other words, they make an array or normal formula look like a model T.
An Excel macro is a computer program that is written or recorded and is stored in a workbook file. The correct name to use instead of macro is actually VBA procedure or VBA for short, but we will talk about that in the following paragraph. For now understand both mean the same thing in modern times and their names are used interchangeably when discussing automation in Excel.
When a macro is run, it can perform a series of automated tasks in Excel such as copying and pasting, rearranging data, automated chart creation, worksheet formatting, data processing, pivot table construction... the list is endless. Microsoft Excel macros are also capable of executing sophisticated logic instructions as well as performing iterative tasks like going through a folder for a specific file or scanning Excel for an open workbook or a specific worksheet for a value. When you think of automating Excel with macros, just think of what you do manually except computer code is written to do the same thing.
The word Macro is actually misleading being confused with the earlier Macro language that Microsoft Excel used in the early 90's. The macros back then where stored on what looked like an Excel worksheet, these sheets being called Macro Sheets. They still exist in Excel today, if you right mouse click over a worksheet tab and select Insert/MS Excel 4.0 Macro you can see one (do not use, however, as they are obsolete). The code on these sheets look like a series of formulas. An Excel macro today is actually a Visual Basic procedure, which is written in VBA which stands for Visual Basic for Applications (What is VBA). So people use the terms VBA macro, Excel macro, Excel VBA macro, Excel VBA... to describe the newer VBA code as mentioned above.
When commanding Microsoft Excel, you usually write a VBA Sub procedure or in some instances a Function procedure. These procedures are stored in a workbook file in a module and can be viewed in the VBA Editor by pressing the Alt+F11 keys while in Excel. When the workbook file storing the VBA macro is distributed, the code also goes along with the workbook. When the workbook is opened, its Excel VBA code is opened. When a workbook is closed, the VBA procedures are closed. Once a macro is saved in a workbook and the workbook reopened, the VBA macro must be enabled for it to run. Microsoft Excel will prompt you with a run dialog box or a run/enable button which appears underneath the formula bar. When Excel VBA code is saved in an Excel 2007 workbook and above, the workbook file must be saved out as an Excel Macro-Enabled Workbook or the code will be lost when the book is closed. Excel 2003 and below does not make this distinction.
An Excel VBA Macro is not only capable of automating the Excel environment, it can also command other programs that are VBA compatible. In other words, you can be in Excel and command Word, Internet Explorer and SQL server in the same procedure. A macro can also talk to other computer languages like C#, VB.NET and FORTRAN (yes FOTRAN, lean, mean and chuck full of libraries for numerical analysis). What this brings to the table is being able to access capabilities and speed that VBA does not process. Do not underestimate the power of Excel VBA, it has Excel at its command, other programs, other languages and can do the most sophisticated mathematics and analysis that you want to do. Developing VBA macros in Microsoft Excel takes about a sixth of the time as other traditional programming environments (sometimes quicker) and can flat out do things that are impossible in other computer languages without a great deal of effort. There are many EMAGENIT projects that started as Band-Aids till bigger systems were developed and then took over as the main programs because the other systems could flat out not be developed.
A lot of books and consulting
companies push that being able to record a macro in Excel is
all you need to put together a program. In some instances,
consulting companies will claim to know how to write macros
for Excel and actually just switch on the recorder and edit
the code a little. Plugging that all you need to know is how
to use the Macro Recorder to control Excel is a very false
misleading statement. The Macro Recorder is really an
ineffective tool when used to try to build an Excel VBA Macro
from scratch. The biggest failure comes in the way it
records the object expression (path) to what you are trying
to control in Excel. Object oriented programming revolves
around the single concept that you create an object
expression (think of the way you drill down Windows
Explorer) identifying what you are trying to control then
tell that object (program element) what to do. The recorder
does not record code this way, it uses an active strategy
which means it will generate code that will toggle the workbook
to the worksheet to get you into position, then use a Selection
command most of the time to identify what you want to
control. The following is the way the Excel Macro recorder
The problem with the code is that it is not robust in execution and very vulnerable to errors. Notice it does not even identify the workbook to control which could be a very big problem. In some instances, the recorder will not even record a task or record it only partially. In reality, the macro recorder is only really good for figuring out the command you want to carry out like Copy or PasteSpecial and how they look when typed (syntax). In recent versions of Excel, the recorder does not even do that very well either. Also the recorder does not put in place logic, loops or variables which are key to creating a functional Excel VBA macro. If you hire a firm to create a Microsoft Excel VBA program, be sure to be on the look out for a lot of Select, Selections and Actives in the computer code. If you see this, they probably used the recorder to write the macro in which case you should ask for a refund.