Attribute VB_Name = "VBADemo" Sub Demo1(deDoc As DataExplorer.Document, spcStart As Long, spcEnd As Long) ' DataExplorer Macro Recorded 04/14/00 ' ' Combine spectra of given ranges Dim sumStart(0) As Long, sumEnd(0) As Long, subStart(0) As Long, subEnd(0) As Long Dim sumCount, subCount As Integer sumStart(0) = spcStart sumEnd(0) = spcEnd sumCount = 1 subCount = 0 deDoc.ChroView.CombineSpectra sumStart, sumEnd, sumCount, subStart, subEnd, subCount, deCombineAverage, 0# ' Deisotope the spectrum deDoc.SpecSetup.DeisotopeAdductFormula = "H" deDoc.SpecSetup.DeisotopeBaseFormula = "C25H26SN4O5" deDoc.SpecView.DeisotopeSpectrum Dim vPeakData As Variant Dim nPeakCount As Long Dim dMass As Double Dim tempFileName As String Dim strLabel As String Dim m1 As Double, m2 As Double ' Get the target mass range for comparison m1 = Demo1Form.StartMassText.Value m2 = Demo1Form.EndMassText.Value ' Open a temp ASCII file for user labels tempFileName = "tmplabel.lbs" Open tempFileName For Output As #1 ' Get spectrum peaks nPeakCount = deDoc.SpecView.GetPeakData(deSpecPeakAll, deSpecPeakSortIntensity, 0, 0, vPeakData) For i = 0 To nPeakCount - 1 ' Get the centroid mass of the peak dMass = vPeakData(i, deSpecPeakCentroidMass) ' Send the mass to Data Explorer's output window Application.OutputWindowWrite deOutputResult, CStr(dMass) ' Write a user label for each mass that is outside the target mass range If (dMass < m1 Or dMass > m2) Then strLabel = "Unkn" + Format(dMass, "###0.00") Print #1, strLabel; Chr(9); CStr(dMass); Chr(9); "0.1"; Chr(9); "1" End If Next i ' Close the ASCII user label file Close #1 ' Load the user labels back to Data Explorer deDoc.SpecView.LoadUserPeakLabels tempFileName End Sub Sub TestDemo1(m1 As Double, m2 As Double) Dim deDoc As DataExplorer.Document Dim sp1 As Long, sp2 As Long Set deDoc = ActiveDocument ' Display extract ion chromatogram of given mass ranges Dim mass1(0) As Double, mass2(0) As Double mass1(0) = m1 mass2(0) = m2 deDoc.ChroView.SetExtractedChro DeExtractedIonRange, mass1, mass2, 1 Dim nPeakCount As Long Dim vPeakData As Variant Dim i As Integer Dim strResult ' Get chromatogram peaks nPeakCount = deDoc.ChroView.GetPeakData(deChroPeakAll, deChroPeakSortSpecNumOrTime, 0, 0, vPeakData) ' Loop through each chro peak For i = 0 To nPeakCount - 1 ' Get peak boundary sp1 = vPeakData(i, deChroPeakStart) sp2 = vPeakData(i, deChroPeakEnd) Demo1 deDoc, sp1, sp2 ' Save the result spectrum strResult = "Demo1" + CStr(i) deDoc.SpecView.SaveAs strResult Next i End Sub Sub TestDemo1Form() Dim m1 As Double, m2 As Double m1 = Demo1Form.StartMassText.Value m2 = Demo1Form.EndMassText.Value TestDemo1 m1, m2 End Sub Sub StartDemo1() ' Demo1Form.Show vbModal Demo1Form.Show vbModeless ' Display userform in modeles mode End Sub