I am not sure how much this would mess your current project up but are you aware of
Dim getPath As Variant
getPath = Application.GetOpenFilename
Debug.Print getPath
where getPath
will literally store the path to whatever file the user chose.
It will not open the file automatically unless you actually Set getPath = App..
You can open the file later in your code performing checks for the file being already open or just opening it read-only like you mentioned.