0

aspx / html ページから ActiveX 経由で JavaScript を使用して Excel ファイルに書き込んでいるときに、Excel IDE に表示されるマクロ / VBA コードが完全に一致しないことが最近わかりました。

例 - Excel で、セルの境界線を削除するときにマクロを記録すると、次のように表示されます。

Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

しかし、アクティブ X を介して JS から同じアクションを実行したい場合、そのコードは認識されません。(以下回答)

4

1 に答える 1

1

上記のコードは次のように記述されます。

ws.Range("A1:Z65536").Borders(5).LineStyle = -4142;
ws.Range("A1:Z65536").Borders(6).LineStyle = -4142;
ws.Range("A1:Z65536").Borders(7).LineStyle = -4142;
ws.Range("A1:Z65536").Borders(8).LineStyle = -4142;
ws.Range("A1:Z65536").Borders(9).LineStyle = -4142;
ws.Range("A1:Z65536").Borders(10).LineStyle = -4142;
ws.Range("A1:Z65536").Borders(11).LineStyle = -4142;
ws.Range("A1:Z65536").Borders(12).LineStyle = -4142;

各位置と LineStyle への数値マッピングがあるためです。ここから:

These define the style of the border
xlNone = -4142; Note this is the same as xlLineStyleNone
xlContinuous = 1;
xlDash = -4115;
xlDashDot = 4;
xlDashDotDot = 5;
xlDot = -4118;
xlDouble = -4119;
xlSlantDashDot = 13;

These define the weight of the border
xlHairLine = 1;
xlMedium = -4138;
xlThick = 4;
xlThin = 2;

Thise is handy to make borders have the default color index
xlAutomatic = -4105;

These define the placement of border pieces
xlDiagonalDown = 5;
xlDiagonalUp = 6;
xlEdgeLeft = 7;
xlEdgeTop = 8;
xlEdgeBottom = 9;
xlEdgeRight = 10;
xlInsideVertical = 11;
xlInsideHorizontal = 12;
于 2013-03-27T22:17:34.387 に答える