Jordan's answer is a fine one, but your problem runs deeper than whether or not you know VBA. Basically, you have rude coworkers and, if you hope to impress them, becoming a neophyte in an area in which they are highly skilled is unlikely to help.
The better way (IMO) to deal with this sort of thing is to tell the rude one "leave my office [/cubicle/whatever], now. No discussion", then have a word with his boss about how he interacts with his coworkers.
If his boss won't give you a satisfactory answer, take it up with HIS boss. Etc., until you get to the CEO, if that's what it takes.
If nobody up your chain of command thinks that the behaviour you describe from #2 programmer is a problem, the you have to consider whether or not the company you work for is worthy of your particular skill set.
And if you don't think you bring any particularly valuable skills to the company, then you probably shouldn't worry too much about whether or not the others respect you, although (a) you still shouldn't have to take the sort of abuse you describe and (b) your idea to extend your skills is admirable.
...But, if you're not a "natural born programmer", don't try to force your round peg into a square hole.
If it were me, I'd focus on being the kick-ass-est office admin anyone had ever seen. Oh, another tack: if #2's boss doesn't give you a satisfactory response, ask YOUR boss to take it up with him. Explain that you don't think that people should be subjected to that sort of behaviour in civilized society. Again, if he's not open to your complaint, you have to decide if you're going to work for that kind of company.
Good luck!
Leave us comments letting us know how it comes out.