Well based on a quick look, pFeature is nothing. Declaring a variable without setting it to anything, will result in an 'empty' or nothing variable. You cannot access any of the methods and properties on a nothing variable.
Also you will get an error on this line:
pLayer.Name = pFeature.Value(strLayer)
Because pLayer is nothing. You need to set pLayer to something. For example the first layer of the map: pLayer = pMxDoc.FocusMap.Layer(0).
Of course you are probably looking for a specific layer so you may need to loop through the layers in the map or something.
Once you have the layer you are interested in, you can Query Interface to get the IFeatureLayer (if it applies.) IFeatureLayer has the FeatureClass property of type IFeatureClass. The IFeatureClass has a search method that returns a featurecursor. IFeatureCursor.NextFeature returns a feature of type IFeature. That should give you a populated feature that has values in it.
another thing you should not use "Set" for a string. In VBA "Set" is only used for object (quick rule of thumb if I can write the value down no set, if I can't, use set, works 99% of the time.)
Aside from that, field might not be found (findfield returns -1) or the value in that field for that feature could be null.
Good luck