There's a few ways that people tackle this, although I'm not sure that VB is efficient at any of them. All of them tend to use an array to store the tile at each location, maybe a 256x256 array, and if your tiles are 32x32 for instance, your visible world would be 8192 x 8192 pixels, pretty big. Ideally you'd only draw the tiles that are visible, so work out the top left and bottom right corner indices and draw the tiles inside that area. Ideally you would draw as little as possible, aim to cover the screen and that's all.
What engine will you be using - please don't say you plan to make a traditional 2D RPG in native VB, because that just might push me over the edge. You'd probably find a good 2D library for VB, with built in map rendering, maybe even built in animation and zdepth sorting and other useful things like that. VB is not cut out for 2D map drawing on it's own, not without it getting all rediculous and stupid.
Health, Ammo, and bacon and eggs!