'MacroName:multipart 'MacroDescription:multiple monographs to multipart monograph option explicit Sub Main Dim CS As Object Set CS = CreateObject("Connex.Client") dim tag245$, tag260$, tag300$, tag505$ dim pos%, firstDelimPos%, SRPos% dim partTitlePos1%, partTitlePos%, partTitlePos2%, partTitle$ dim numberingPos1%, numberingPos2%, numbering$ CS.DeriveNewRecord(True) 'fixed field elements CS.SetFixedField "DtSt", "m" CS.SetFixedField ",", "9999" 'change 300 from p. to v. CS.GetField "300", 1, tag300$ pos% = instr(tag300$, ": " & chr(223) & "b") if pos% > 0 then tag300$ = left(tag300$, 5) & "v. " & mid(tag300$, pos%) CS.DeleteField "300", 1 CS.SetField 1, tag300$ end if 'change date from single to open CS.GetField "260", 1, tag260$ if right(tag260$, 1) = "." then tag260$ = left(tag260$, len(tag260$) - 1) & "-" else tag260$ = left(tag260$, len(tag260$)) & "-" end if CS.DeleteField "260", 1 CS.SetField 1, tag260$ 'create 505 from 245 info CS.GetField "245", 1, tag245$ numberingPos1% = instr(tag245$, chr(223) & "n") if numberingPos1% > 0 then numberingPos2% = instr(numberingPos1% + 1, tag245$, chr(223)) - 1 numbering$ = mid(tag245$, numberingPos1% + 3, numberingPos2% - numberingPos1% - 4) else numbering$ = "" end if numbering$ = trim(numbering$) partTitlePos1% = instr(tag245$, chr(223) & "p") if partTitlePos1% > 0 then partTitlePos2% = instr(partTitlePos1% + 1, tag245$, chr(223)) - 1 partTitle$ = mid(tag245$, partTitlePos1% + 3, partTitlePos2% - partTitlePos1% - 4) 'remove part and number from 245 firstDelimPos% = instr(tag245$, chr(223)) SRPos% = instr(tag245$, chr(223) & "c") tag245$ = left(tag245$, firstDelimPos% - 3) & mid(tag245$, SRPos% - 3) CS.DeleteField "245", 1 CS.SetField 1, tag245$ else partTitle$ = "" end if partTitle$ = trim(partTitle$) 'delete 246 if partTitle$ <> "" then tag505$ = "50510" & chr(223) & "g " & numbering$ & ". " & chr(223) & "t " & partTitle$ CS.SetField 1, tag505$ CS.DeleteField "246", 1 end if End Sub