ok, so when you get a ROM, wherever you save it, when you start playing it, the emulator will automatically create a file that ends with .sav. So lets take Blue Version. You get the ROM, which is called "Pokemon Blue.gb". That's what you play. The game saves sort of like Gamecube games save, the game isn't saved on the actual "game" (the rom in this case), instead its saved somewhere else. On a gamecube, it saves on a memory card. On a computer, it just makes another file, which in our example would be "Pokemon Blue.sav". If you make a savestate while you're playing (shift + one of the f keys 1-10), it makes ANOTHER file, which would be called "Pokemon Blue1.sgm", "Pokemon Blue2.sgm", etc. corresponding to what f key you use to save it on. All of these files save wherever the original ROM is, so if you put it on your desktop, your desktop will be cluttered with random files, but if you are organized and have a separate folder for ROMs, that folder will get really cluttered, but it doesn't really matter, since nobody can see it. And when you try to open the game in VBA, it only shows files that it can open, so it'll just show the "Pokemon Blue.gb" and not the save file or the savestate file.
Did that clear anything up?