range.Borders(Excel.XlBordersIndex.xlEdgeLeft).LineStyle = Excel.XlLineStyle.xlLineStyleNone
range.Borders(Excel.XlBordersIndex.xlEdgeRight).LineStyle = Excel.XlLineStyle.xlLineStyleNone
range.Borders(Excel.XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlLineStyleNone
range.Borders(Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Excel.XlLineStyle.xlLineStyleNone
range.Borders(Excel.XlBordersIndex.xlInsideHorizontal).LineStyle = Excel.XlLineStyle.xlLineStyleNone
range.Borders(Excel.XlBordersIndex.xlInsideVertical).LineStyle = Excel.XlLineStyle.xlLineStyleNone
Usuwa obramowania wokół komórkami oraz między komórkami (Via xlInsideHorizontal
i xlInsideVertical
). Jeśli spodziewasz się przekątnych granic, włącz xlDiagonalDown
i xlDiagonalUp
.
OK, powyższy kod był bardzo szczegółowy. Poniższa powinien zrobić też:
For Each border in range.Borders
border.LineStyle = Excel.XlLineStyle.xlLineStyleNone
Next
Patrz: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.borders.aspx
EDIT:
Chociaż patrząc na stronie MSDN, zastanawiam się, czy ta wkładka może to zrobić też:
range.Borders.LineStyle = Excel.XlLineStyle.xlLineStyleNone
Byłoby bardzo wolno, gdyby zasięg był zbyt duży. Czy może to zrobić dla całego zakresu naraz? –
Powinno być bardzo szybkie, ponieważ nie wykonuje się iteracji po każdej komórce, tak jak w próbce. Spróbowałeś? – VVS
Przypuszczam, że jest podobny do iteracji ponad granicami każdej komórki. Mam na myśli to, że rozwiązanie wydaje się dobre, ale czy nie istnieje bezpośrednia metoda dla całego zakresu? Myślę, że musi być jeden? –