Very useful Leo! You hopefully don't mind showing my version of basically the same thing? o)
This one also remembers the column-widths and is easy to adjust to different sets of columns.
function OnClick(data) {
ToggleColumns( "size", "sizeauto", data.func.sourcetab, data.func.command);
ToggleColumns( "disksize", "disksizeauto", data.func.sourcetab, data.func.command);
}
function ToggleColumns(col01, col02, tab, cmd){
var remCol = col01, addCol = col02, indexes = [], cols = tab.format.columns;
for(var idx=0;idx<cols.count;idx++) indexes[cols(idx).name.toLowerCase()] = idx+1;
if (indexes[remCol] && !indexes[addCol]) var colIdx = indexes[remCol]-1;
else if (!indexes[remCol] && indexes[addCol]) var remCol = col02, addCol = col01;
else return;
var colIdx = indexes[remCol]-1;
tab.vars.Set("TC.Width."+remCol) = cols(colIdx).width;
var width = tab.vars.Exists("TC.Width."+addCol)?tab.vars.Get("TC.Width."+addCol):"*";
cmd.RunCommand('Set COLUMNSREMOVE="'+remCol+'" COLUMNSADD="'+addCol+'('+(colIdx)+','+width+')"');
}