Можно поймать все исключения и зарегистрировать то, что, будьте пойманы:
import sys
import traceback
def formatExceptionInfo(maxTBlevel=5):
cla, exc, trbk = sys.exc_info()
excName = cla.__name__
try:
excArgs = exc.__dict__["args"]
except KeyError:
excArgs = ""
excTb = traceback.format_tb(trbk, maxTBlevel)
return (excName, excArgs, excTb)
try:
x = x + 1
except:
print formatExceptionInfo()
(Код от http://www.linuxjournal.com/article/5821 )
Также читает документация относительно sys.exc_info.
Попробуйте написать DLL на C # и сослаться на нее в макросе VB.
Таким образом, единственный VB, который вам нужно написать, - это код для подключения DLL к IDE.
К сожалению, нет, Visual Studio поддерживает только VB.NET для макросов.
Я бы не стал особо переживать по поводу отсутствия C # для макросов (многие разработчики C #, кажется, огорчены тем, что код VB.NET прилипнет к их обуви, как туалетная бумага). Скорее гордитесь своей способностью продуктивно говорить на нескольких языках!
Фрагменты - самые близкие из тех, с которыми я сталкивался. Редактор фрагментов 2.1 неплохо справляется с их настройкой без особых хлопот.