Massive number of obsolete defined names in Excel = huge file
First of all, it is not a virus, not in the general sense, nor in the sense of an Excel virus. And related to that, it is not Excel going rogue.
Second, it is NOT Excel creating the Names on its own. Excel certainly is willing to help a human do it, but it is not, in and of itself, creating these.
Third, as to macros, macros do not need to be in YOUR spreadsheet to affect it. Especially macros in a user's Personal workbook. So the mentioning of macros is definitely appropriate, but a) Far too broad a subject to really cover in detail here, and b) in many ways unlikely to cause this general problem in a direct way. However, the latter aspect... all VBA has to do is ask one yes or no question and then it can go forth in a VERY industrial manner and do 10,000 things before stopping. So depending upon "things," it could well be the source of the problem.
More on that in a moment.
All a user has to do is to copy a few sheets of his own, replete with Names, into yours and each will bring along any Names of its own. If someone, and I'd bet real money, not fake internet money, on the fact this is a single person causing your problems, has a few or a dozen sheets of his own in his own file and when yours arrives, he copies them over to yours to make his own world of using your spreadsheet much more congenial, then deletes those sheets, any Names in them would remain unless he thought past his nose. And why would he? The world revolves around him, not you, so...
But you report file size increase as well. And take a look at those Names in your pic. Every one of them COULD be (and let's face it: IS) a column label. How would 16,384 column labels become Names? Well, a macro. Or... Excel has an option for a user to create Named Ranges out of column labels. (And row labels too, all million of them.)
So say that guru-wannabee adds his sheets, then needs a couple, three dozen columns as Named Ranges, too much work for a savvy guy like him, he records a quick macro, or worse, writes one, maybe following a recorded one's lines, but most likely recorded one a long time ago (you know, when Excel had 256 columns, not 16,384) and simply had it create Named Ranges for ALL the columns and has never considered the macro again. So now... it's not just wicked stupid and lazy, it's a nightmare.
Notice the other columns in the pic. They are exactly what one would see if one added a sheet, Named every column, and later deleted the sheet.
If only he NEVER saved while he worked. Of course, he could never be creating problems, right? So why shouldn't he save along the way, that's what prudent people do you know, power does go out, and 20 years ago, computers locked up on you.
So my bet is:
- A single person. From the above you may already be muttering his name. (Keep it to a mutter if it's the boss, but it would still need addressed.)
- Probably NO clue he is doing this. Although, as soon as you mention making Named Ranges from columns, his light might turn right on.
- Deleting the sheets (whether added, or moved in from something he set up for doing so) and giving those #REF! errors.
- Not actually going to stop. He's gonna "fix the problem..." So, yeah, maybe.
- Actually does plant information in places, like six hundred columns over and 30,000 rows down "so no one ever sees it even if he forgets to delete it" from pages staying when he returns it to you or passes it on to the next guy. This is what sometimes (often) bloats the size, not the Names themselves.
In this most likely seeming scenario, the only real solution is finding a way to force him to work in his own scratch spreadsheet using your material, not the opposite way around. And if he then has to laboriously copy material back over, well, he grew the trees, mined and smelted the ore for an axe, saw, hammer, and nails, chopped the trees down, and built this boat. YOU'VE served enough time dealing with his messes, so he can do the hard stuff now instead of you.
Because the obvious solution: STOP, MAN! is not gonna happen. And Excel is not built to lock him down, not at all. It needs a human solution (boss, no raises, firing... whichever level he demands).
Not much else, other than rogue "carried away" methods of work by someone can cause your experienced problem. Except for intentional mischief and we won't go there. All the things you see have their own litanies of possible causes, but together, they spell the animal I've been describing. Time to slip into some Lincoln Orange and go hunting.
And if someone is not the victim of his own lazy macro writing, but rather doing this by hand, he needs fired, not reprimanded, as he is applying that kind of "thinking" to every bit of his job... no company needs that.
(I do understand this was posted seven years ago (and aging more every second), but it needs to read properly to help someone encountering it in a search whenever "nowadays" happens to be. Although, if the poster is still reading responses, and has been bedeviled all this time, perhaps it will help him as well.)