Why isn't that available in VBA? Looks quite easily accessible to me... Just get the current document from the Application object, and the rest of the code would be the VBA-equivalents to your post...
And for what it's worth, you can get modelspace (what you called blk in your code) directly from the active document:
(setq ms (vla-get-modelSpace *doc*))
(if (= :vlax-true (vla-get-hasExtensionDictionary ms))
...
)