This seems to be what you need: http://fernandof.wordpress.com/2008/02/05/how-to-check-the-type-of-a-com-object-system__comobject-with-visual-c-net/
Then you could do something like:
public String GetExcelType(dynamic thing)
{
Type type = GetExcelTypeForComObject(thing)
if(type == typeof(Microsoft.Office.Interop.Excel.Chart))
{
return "[CHART]";
}
else if (type == typeof(Microsoft.Office.Interop.Excel.Range))
{
return "[TABLE]";
}
return "[UNKNOWN]";
}