Microsoft and VBA: A Love(less) Story

Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.

Microsoft and VBA: A Love(less) Story

The Drifting Apart

It's been over ten years since Microsoft last showed VBA any real love.  Nowadays, it seems like Microsoft spends all its time at the office with C#.  He comes home tired and doesn't even look at VBA as he grabs a beer from the fridge and flops on the couch.  If he interacts with VBA at all, it's only to ask what's for dinner.

It seems like Microsoft is spending more and more late nights at "work."  He sneaks into bed after midnight, still smelling vaguely of OfficeScript and Power BI.  VBA pretends to sleep through it, but she misses the passion.  She thinks back to the old days, when she was the object of Microsoft's affection.

She was all Microsoft could talk about.  He was so proud of her.  Showing her off to all his friends.  She smiles thinking about it.

She was Visual Basic in those days.  The original Visual Basic.  The real Visual Basic.  That's the name she went by back then.  None of this VB6 stuff.  No one called her VB6 until that bimbo VB.NOT came along.  Did Microsoft really think he could start parading a different woman around town and convince people that it was still her?  What was his plan?  Just tell people she got a boob job and a facelift?

People aren't idiots.  VB6 and VB.Net may look similar on the outside, but they're completely different people.  No amount of lipstick and hair spray (or silicone) was ever going to cover up that fact.

A Marriage of Convenience

How did they get to this point?  Microsoft doesn't care about her anymore.  He doesn't see her anymore.  He takes her for granted.  

She's stuck in this loveless marriage for the same reason as so many others: the kids.  So many kids.  How many is it?  Hundreds of thousands?  Millions? Tens of millions?  All of her VBA children–quietly running the business world for over twenty years now.  

VB6 could see the writing on the wall.  If she was going to keep this marriage together, she needed to accept reality.  She embraced her role as mother to all the code behind every automated Office document.  She legally changed her name to VBA.

She knows how Microsoft feels about her.  She can see it in his eyes.  The way he lusts after other women.  The way he merely tolerates her.  

She knows he would leave her if he thought he could.  But it all comes back to the children.  He cannot abandon them.  He has an image to uphold.  He can't be seen as the kind of man who disowns his children.

So he provides for them.  He provides for her.  But there is no love.  

Oh, there is still some affection, to be sure.  Sometimes they even talk fondly about the earlier days.  The legacy they built together.   But affection is not the same as passion.  And it's been a long time since Microsoft was passionate about VBA.

An Aging Home

VBA and Microsoft are still living in the same house they moved into together over twenty years ago.  

With its IntelliSense and Immediate Window, it was the talk of the town when they first built it.  Since then, though, other people have moved into town and built nicer houses.

IntelliSense is old news now.  These new houses all have code folding, name refactoring, regex find and replace, you name it.  Most of them even have whole-house, integrated version control.  Poor VBA sweats all day without so much as a version control window unit.

The most frustrating part is that her husband builds houses for a living.  He built that mansion on the other side of town for Visual Studio.  And the millennials can't stop drooling over that VS Code tiny house.  

Would it really kill him to spend a summer putting on that addition they've been talking about?  What's that saying about the cobbler's children having no shoes?

A Marriage on the Rocks

She often wonders where it all went wrong.

Looking back, VBA can't help thinking about the terrible night she and Microsoft stayed up fighting until two in the morning.  They argued about how much time Microsoft was spending with the .NET Framework.  He insisted he was just trying to build a better life for the two of them.  He was half right; the better life he was building was never about her.

She remembers yelling at him, "If you love that .NET Framework so much, maybe she should be the one raising your kids."  

He said nothing to that, but she could see she had struck a nerve.  "Let me guess," she said, "you realize it would be cheaper to stay married and leave me to raise these millions of kids on my own–with no help from you–than to try to replace me!!!"

She slammed the bedroom door and locked it.  He could sleep on the couch for all she cared.

Microsoft was quiet the next morning.  He apologized.  He swore he was not abandoning her.  He loved her.  If he didn't love her, he pleaded, how could she explain the millions of children they made together.

The next week, he bought her a 64-bit anniversary band.  It was lovely, she had to admit.  But it felt like an empty gesture.  Little did she know at the time, it was the last nice thing Microsoft would do for her.

A Midlife Crisis for Him

A few years later, Microsoft blindsided her with words she thought she would never hear come out of his mouth.  "I want to have an open-source marriage."

Dumbstruck, she clutched a nearby chair to keep from collapsing to the floor.  "No," she said.  "I don't want you sharing me with the world."

"Fine," he replied.  "But this is who I am now.  You better get used to it."

Honestly, she didn't really think he'd go through with it.  She figured it was some sort of midlife crisis.  Whatever it was, it would surely pass.  But it didn't.

One Friday afternoon, while VBA was in the living room folding clothes, Microsoft burst through the front door of the house.  His shirt was untucked, his hair was tousled, and she was sure she saw a smear of lipstick on his neck.

"Shouldn't you be at work?" she asked him.

"Not today!" he exclaimed as he flew past her into the kitchen.

"Keep your voice down, you're going to wake the centuplets," VBA admonished him.

"Where is it?" he muttered to himself.

"Where is what?" VBA asked, clearly annoyed.  

"Found it!" he yelled, ignoring her request to be quiet.  "Can you believe Linus doesn't have a corkscrew?" he chuckled as he glided past her.

The thought clearly amused him, but VBA was not in the mood for this right now.  "Linus who?  Where are you going?"

"I'm going to the Torvaldses' to celebrate," Microsoft said, pausing at the door.  "Hey, you should come, too."  

It was less of an invitation and more of a formality.  

"What about the kids?" she asked.  "I can't just leave them here."

"Oh, right!  What was I thinking?" He smacked his forehead in feigned ignorance.  "You better stay here.  I'll see you tonight."  As the front door swung shut behind him, he yelled over his shoulder, "Don't wait up!"

VBA went to the window, stepping over the piles of clean clothes.  She watched from the house as Microsoft hopped into the backseat of the convertible.  He put one arm around VS Code and the other around GitHub.  Satya drove off.  VBA stared out the window as the car rounded the corner out of sight.

A Reinvention for Her

VBA gazed absently out the window for several minutes.  The more she thought about his callous indifference toward her, the angrier she got.  And the angrier she got, the more she resolved to do something about it.

VBA told herself she would no longer be content to wait around for affection that would never come.  She needed to get his attention.  She needed to start making changes that he could not ignore.  

She started going to the gym to get in shape.  She went to the spa and got a full makeover.  She even built her own "she-shed" in the backyard.  Unlike her house, this had code folding, rename refactoring, and so much more.

She did all this without Microsoft so much as batting an eye.  She had become truly invisible to him.

Well, she thought, I guess he is about to get one hell of a surprise.

External references

What are the differences between VBA 6.0 and VBA 7.0?
I noticed that Office 2010 comes with Visual Basic for Applications 7.0. However I can’t seem to find much documentation on what changes were made. Does anyone have a summary of the changes, or any
Linus Torvalds - Wikipedia
Satya Nadella - Wikipedia
twinBASIC Welcome

Image by mohamed Hassan from Pixabay

All original code samples by Mike Wolfe are licensed under CC BY 4.0