Cell Overwritten Check

I wrote a routine in .NET for SW09 SP4.1 for checking to see if cells of the BOM have been manually overwritten. The routine works wonderfully in SW09 and WinXP x64.

We are going to be upgrading to Win7x64 and SW2011 SP3.0 so I am upgrading and testing the addin that I created. Everything works great exscept for this cell checker. On a drawing in SW09 the routine takes about 6 seconds to complete. That same drawing in SW11, it takes 12MINUTES, same results after saving the drawing in 2011 format. The drawing itself has 2 configs on the BOM and 45 line items.

I think I have narrowed it down to the code that clears out the value to check the default (commented below in the code). Can anyone here see anything that I am missing? I really need to get this working properly.

I am using MS Visual Studio Express 2010

<span style="font-size: 10pt; font-family: Consolas; "><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Public</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Sub</span><span style="font-size: 10pt; font-family: Consolas; "> subCellChecker(</span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">ByVal</span><span style="font-size: 10pt; font-family: Consolas; "> SW </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> SldWorks.</span><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">SldWorks</span><span style="font-size: 10pt; font-family: Consolas; ">)</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Const</span><span style="font-size: 10pt; font-family: Consolas; "> strApp </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">String</span><span style="font-size: 10pt; font-family: Consolas; "> = </span><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"Cell Checker v1.02"</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> swApp </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> SldWorks.</span><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">SldWorks</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> swModel </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> SldWorks.</span><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">ModelDoc2</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> SelMgr </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Object</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> swTableAnnotation </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> SldWorks.</span><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">TableAnnotation</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> pb </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> SldWorks.</span><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">UserProgressBar</span><span style="font-size: 10pt; font-family: Consolas; "> = </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Nothing</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> pbPosition </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Integer</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> pbStatus </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Boolean</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> retVal </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Boolean</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> lRet </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Long</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> SelObjType </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Long</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> TableAnnotationType </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Long</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> nRowCount </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Long</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> nRCount </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Long</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> nColCount </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Long</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> nCCount </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Long</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> nDescriptionCol </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Long</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> nShtCol </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Long</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> sTargetPN </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">String</span><span style="font-size: 10pt; font-family: Consolas; "> = </span><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">""</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> sTemp </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">String</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> bChanged </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Boolean</span><span style="font-size: 10pt; font-family: Consolas; "> = </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">False</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> bShtCol </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Boolean</span><span style="font-size: 10pt; font-family: Consolas; "> = </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">False</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> appExcel </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Object</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> wbkReport </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Object</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Dim</span><span style="font-size: 10pt; font-family: Consolas; "> wksReport </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">As</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Object</span><span style="font-size: 10pt; font-family: Consolas; "> <p>swModel = SW.ActiveDoc</p><p>SelMgr = swModel.SelectionManager</p><p>SelObjType = SelMgr.GetSelectedObjectType2(1)</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> SelObjType <> 98 </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #008000; font-size: 10pt; font-family: Consolas; ">'swSelANNOTATIONTABLES</span><span style="font-size: 10pt; font-family: Consolas; "> <p>MsgBox(Prompt:=</p><p><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"You must select a BOM table in the drawing before running this macro."</span><span style="font-size: 10pt; font-family: Consolas; ">, Buttons:=</span><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">MsgBoxStyle</span><span style="font-size: 10pt; font-family: Consolas; ">.Exclamation + </span><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">MsgBoxStyle</span><span style="font-size: 10pt; font-family: Consolas; ">.OkOnly, Title:=strApp & </span><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">" "</span><span style="font-size: 10pt; font-family: Consolas; "> & strAppVersion)</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Exit Sub</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p>swTableAnnotation = SelMgr.GetSelectedObject5(1)</p><p>TableAnnotationType = swTableAnnotation.Type</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> TableAnnotationType <> 2 </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #008000; font-size: 10pt; font-family: Consolas; ">'swTableAnnotation_BillOfMaterials</span><span style="font-size: 10pt; font-family: Consolas; "> <p>MsgBox(Prompt:=</p><p><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"You must select a BOM table in the drawing before running this macro."</span><span style="font-size: 10pt; font-family: Consolas; ">, Buttons:=</span><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">MsgBoxStyle</span><span style="font-size: 10pt; font-family: Consolas; ">.Exclamation + </span><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">MsgBoxStyle</span><span style="font-size: 10pt; font-family: Consolas; ">.OkOnly, Title:=strApp & </span><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">" "</span><span style="font-size: 10pt; font-family: Consolas; "> & strAppVersion)</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Exit Sub</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p>nRowCount = swTableAnnotation.RowCount</p><p>nColCount = swTableAnnotation.ColumnCount</p><p>retVal = SW.GetUserProgressBar(pb)</p><p>pbPosition = 0</p><p>pbStatus = pb.Start(pbPosition, nRowCount, strApp &</p><p><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">" Initializing..."</span><span style="font-size: 10pt; font-family: Consolas; ">)</span><span style="font-size: 10pt; font-family: Consolas; "> <p>appExcel = CreateObject(</p><p><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"Excel.Application"</span><span style="font-size: 10pt; font-family: Consolas; ">)</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wbkReport = appExcel.Workbooks.Add</p><p>wksReport = wbkReport.ActiveSheet</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">For</span><span style="font-size: 10pt; font-family: Consolas; "> nCCount = 0 </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">To</span><span style="font-size: 10pt; font-family: Consolas; "> nColCount </span><span style="color: #008000; font-size: 10pt; font-family: Consolas; ">'set format before hand so we dont lose the formatting</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wksReport.Columns(nCCount + 1).EntireColumn.numberformat =</p><p><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"@"</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Next</span><span style="font-size: 10pt; font-family: Consolas; "> nCCount</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">For</span><span style="font-size: 10pt; font-family: Consolas; "> nRCount = 1 </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">To</span><span style="font-size: 10pt; font-family: Consolas; "> nRowCount </span><span style="color: #008000; font-size: 10pt; font-family: Consolas; ">'dont check top row</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> nRCount > 2 </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> <p>pb.UpdateTitle(strApp &</p><p><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">" Checking row "</span><span style="font-size: 10pt; font-family: Consolas; "> & nRCount - 2 & </span><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">" of "</span><span style="font-size: 10pt; font-family: Consolas; "> & nRowCount - 2)</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">For</span><span style="font-size: 10pt; font-family: Consolas; "> nCCount = 0 </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">To</span><span style="font-size: 10pt; font-family: Consolas; "> nColCount - 1</span><span style="font-size: 10pt; font-family: Consolas; "> <p>sTemp = swTableAnnotation.Text(nRCount, nCCount)</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> sTemp = </span><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"SHT"</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> <p>nShtCol = nCCount</p><p>bShtCol =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">True</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> bShtCol = </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">True</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> nCCount <> nShtCol </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> nRCount > 1 </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> swTableAnnotation.Text(nRCount, nCCount) = </span><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">""</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Else</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #008000; font-size: 10pt; font-family: Consolas; ">'very slow on this line with large multi config BOMs</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> nRCount > 1 </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> swTableAnnotation.Text(nRCount, nCCount) = </span><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">""</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wksReport.Cells(nRCount, nCCount + 1) = sTemp</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> sTemp <> swTableAnnotation.Text(nRCount, nCCount) </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">And</span><span style="font-size: 10pt; font-family: Consolas; "> nRCount <> 1 </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> bShtCol = </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">True</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> nCCount <> nShtCol </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #008000; font-size: 10pt; font-family: Consolas; ">'dont highlight SHT col since it is always overwritten</span><span style="font-size: 10pt; font-family: Consolas; "> <p>bChanged =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">True</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wksReport.Cells(nRCount, nCCount + 1).Interior.ColorIndex = 6</p><p>swTableAnnotation.Text(nRCount, nCCount) = sTemp</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Else</span><span style="font-size: 10pt; font-family: Consolas; "> <p>bChanged =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">True</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wksReport.Cells(nRCount, nCCount + 1).Interior.ColorIndex = 6</p><p>swTableAnnotation.Text(nRCount, nCCount) = sTemp</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Next</span><span style="font-size: 10pt; font-family: Consolas; "> nCCount</span><span style="font-size: 10pt; font-family: Consolas; "> <p>pbPosition = pbPosition + 1</p><p>lRet = pb.UpdateProgress(pbPosition)</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Next</span><span style="font-size: 10pt; font-family: Consolas; "> nRCount</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">For</span><span style="font-size: 10pt; font-family: Consolas; "> nCCount = 0 </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">To</span><span style="font-size: 10pt; font-family: Consolas; "> nColCount</span><span style="font-size: 10pt; font-family: Consolas; "> <p>sTemp = wksReport.Cells(1, nCCount + 1).value</p><p>wksReport.Columns(nCCount + 1).EntireColumn.AutoFit()</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> UCase(sTemp) <> </span><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"DESCRIPTION"</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wksReport.Columns(nCCount + 1).HorizontalAlignment = -4108</p><p><span style="color: #008000; font-size: 10pt; font-family: Consolas; ">'literal value for center</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Else</span><span style="font-size: 10pt; font-family: Consolas; "> <p>nDescriptionCol = nCCount + 1</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Next</span><span style="font-size: 10pt; font-family: Consolas; "> nCCount</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wksReport.Cells(nRowCount + 2, nDescriptionCol - 1).Interior.ColorIndex = 6</p><p>wksReport.Cells(nRowCount + 2, nDescriptionCol).value =</p><p><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"'= Denotes a SolidWorks B.O.M. table cell that has been overwritten from its original linked value."</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wksReport.Cells(nRowCount + 3, nDescriptionCol).value =</p><p><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"Exported: "</span><span style="font-size: 10pt; font-family: Consolas; "> & Now</span><span style="font-size: 10pt; font-family: Consolas; "> <p>pbPosition = 0</p><p>lRet = pb.UpdateProgress(pbPosition)</p><p>pb.UpdateTitle(strApp)</p><p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> bChanged = </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">True</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Then</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #008000; font-size: 10pt; font-family: Consolas; ">'only save if a cell has been overwritten</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wbkReport.SaveAs(swModel.GetPathName &</p><p><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"_CELL_CHECK_REPORT.xls"</span><span style="font-size: 10pt; font-family: Consolas; ">)</span><span style="font-size: 10pt; font-family: Consolas; "> <p>appExcel.Visible =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">True</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Else</span><span style="font-size: 10pt; font-family: Consolas; "> <p>MsgBox(</p><p><span style="color: #a31515; font-size: 10pt; font-family: Consolas; ">"No cells in the B.O.M. have been overwritten."</span><span style="font-size: 10pt; font-family: Consolas; ">, </span><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">MsgBoxStyle</span><span style="font-size: 10pt; font-family: Consolas; ">.OkOnly, strApp)</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wbkReport.close(</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">False</span><span style="font-size: 10pt; font-family: Consolas; ">)</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">If</span><span style="font-size: 10pt; font-family: Consolas; "> <p>pb.End()</p><p>pb =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Nothing</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wbkReport =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Nothing</span><span style="font-size: 10pt; font-family: Consolas; "> <p>wksReport =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Nothing</span><span style="font-size: 10pt; font-family: Consolas; "> <p>System.Runtime.InteropServices.</p><p><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">Marshal</span><span style="font-size: 10pt; font-family: Consolas; ">.ReleaseComObject(appExcel)</span><span style="font-size: 10pt; font-family: Consolas; "> <p>appExcel =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Nothing</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">GC</span><span style="font-size: 10pt; font-family: Consolas; ">.Collect()</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #2b91af; font-size: 10pt; font-family: Consolas; ">GC</span><span style="font-size: 10pt; font-family: Consolas; ">.WaitForPendingFinalizers()</span><span style="font-size: 10pt; font-family: Consolas; "> <p>swTableAnnotation =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Nothing</span><span style="font-size: 10pt; font-family: Consolas; "> <p>SelMgr =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Nothing</span><span style="font-size: 10pt; font-family: Consolas; "> <p>swModel =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Nothing</span><span style="font-size: 10pt; font-family: Consolas; "> <p>swApp =</p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Nothing</span><span style="font-size: 10pt; font-family: Consolas; "> <p></p><p><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">End</span><span style="font-size: 10pt; font-family: Consolas; "> </span><span style="color: #0000ff; font-size: 10pt; font-family: Consolas; ">Sub</span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span></p></span>
SolidworksApi macros