This worked like a dream thank you so much! Is this possible with paragraph and character styles?
totally! in the same InDesign file you saved the swatches in, add any new styles so they can be pulled in at the same time
var myDoc = app.activeDocument;
var preFile = File.openDialog ("Select file");
var paraStyles = myDoc.allParagraphStyles;
var charStyles = myDoc.allCharacterStyles;
//load swatches
var _loadSwatches = preFile;
if ( _loadSwatches != null ) {
try { app.activeDocument.loadSwatches ( _loadSwatches ) }
catch ( _ ) { alert ( _ ) }}
//load styles
myDoc.importStyles(ImportFormat.PARAGRAPH_STYLES_FORMAT, preFile);
myDoc.importStyles(ImportFormat.CHARACTER_STYLES_FORMAT, preFile);
myDoc.importStyles(ImportFormat.OBJECT_STYLES_FORMAT, preFile);
myDoc.importStyles(ImportFormat.TABLE_AND_CELL_STYLES_FORMAT, preFile);
//replace swatches
try { myDoc.colors.item("OLD").remove("NEW");}catch (e) {}
try { myDoc.colors.item("OLD").remove("NEW");}catch (e) {}
try { myDoc.colors.item("OLD").remove("NEW");}catch (e) {}
// Rename styles
for (a = 2; a < paraStyles.length; a++) {
if (paraStyles[a].name == "OLD") { paraStyles[a].name = "NEW"; }
if (paraStyles[a].name == "OLD") { paraStyles[a].name = "NEW"; }
if (paraStyles[a].name == "OLD") { paraStyles[a].name = "NEW"; }}
for (a = 2; a < charStyles.length; a++) {
if (charStyles[a].name == "OLD") { charStyles[a].name = "NEW"; }
if (charStyles[a].name == "OLD") { charStyles[a].name = "NEW"; }
if (charStyles[a].name == "OLD") { charStyles[a].name = "NEW"; }}
// Replace styles in a group if file for sure has all of them, if one is missing then it will skip the rest
try{
paraStyles.item("OLD").remove(paraSyles.item("NEW"));
charStyles.item("OLD").remove(charSyles.item("NEW"));
paraStyles.item("OLD").remove(paraSyles.item("NEW"));
}catch(e){}
// Replace styles individually
try { paraStyles.item("OLD").remove(paraSyles.item("NEW");}catch (e) {}
try { charStyles.item("OLD").remove(paraSyles.item("NEW");}catch (e) {}
// Done
alert("Alakazam!");