Try:
ws.Column(ColumnIndex).EntireColumn.Hidden = Not col.isActive
If this does not work directly you might have to create a selection first and apply the .EntireColumn.Hidden to the selection, one of the odd behaviours of VBA.
Easiest way to find code for tasks in Excel is to record a macro executing the task then look at the code generated and apply it in your code.