解決済み
excelのマクロで罫線の編集をしたく、ご教授願えませんでしょうか。 説明がつたなく、申し訳ございません。 添付の画像ファイル(無題.jpg)をご参照ください。左表が元、右表が希望する罫線の引かれ方です。 A列:No B列:親部品 C列:子部品 D列:記号1 E列:記号2 F列:記号3 G列:記号4 H列:記号5 B列「親部品」、E列「記号2」、H列「記号5」の いずれのセルにも空白セルが存在する場合、下位に文字列が入力されている セルが出てこない限り、セル上部(top)に罫線を引かない。 罫線を引かない列範囲は、A列「No」~H列「記号5」としたいが、 F列「記号3」~G列「記号4」の範囲に限っては、セル上部(top)に 「点線(細)」で罫線を設定したい。 です。 なにとぞよろしくお願いいたします。
119閲覧
線をなしにするだけだと薄い線が残るので背景色を白にしています。 薄い線を残したままにする場合は、以下の箇所を削除してください。 With Intersect(myR, Range("A:H")) .Interior.Color = vbWhite End With ------------------------- Sub 罫線() Dim Lr As Long Dim k As Long Dim myR As Range Set myR = Rows(1) Lr = Cells(Rows.Count, 1).End(xlUp).Row Cells(2, Columns.Count - 1).Resize(Lr - 2).Formula = _ "=IF((COUNTBLANK(B2)+COUNTBLANK(E2)+COUNTBLANK(H2)=0)+(COUNTA(B3,E3,H3)<>3)=2,ROW(),"""")" Cells(2, Columns.Count).Resize(Lr - 2).Formula = _ "=IF((COUNTBLANK(B3)+COUNTBLANK(E3)+COUNTBLANK(H3)=3)+(COUNTA(B2,E2,H2)>0)=0,ROW(),"""")" For k = 1 To WorksheetFunction.CountIf(Columns(Columns.Count - 1), ">0") Set myR = Union(myR, Rows(WorksheetFunction.Small(Columns(Columns.Count - 1), k) & _ ":" & WorksheetFunction.Small(Columns(Columns.Count), k))) Next Set myR = Intersect(Rows(2).Resize(Rows.Count - 1), myR) With Intersect(myR, Range("A:H")) .Interior.Color = vbWhite End With With Intersect(myR, Range("A:E")) .Borders(xlInsideHorizontal).LineStyle = xlNone End With With Intersect(myR, Columns("H")) .Borders(xlInsideHorizontal).LineStyle = xlNone End With With Intersect(myR, Range("F:G")) .Borders(xlInsideHorizontal).LineStyle = xlDot End With Columns(Columns.Count - 1).Resize(, 2).ClearContents End Sub
こんな手も 有ります。 縦線は 最初に 引いてください。 外郭線だけ引いてください。 横線は 引かないで下さい。 で 条件付き書式で =A2<>"" として セルが 空白以外のとき セルの上の線を 引くように設定します。データーがはいれば 上の線が引かれます。
以下でどうなりますか 左表の様に、罫線が引かれているものを変更します Public Sub Samp1() Dim rng As Range, r As Range With Range("A1").CurrentRegion On Error Resume Next Set rng = .Columns(2).SpecialCells(xlCellTypeBlanks) On Error GoTo 0 If (Not rng Is Nothing) Then Application.ScreenUpdating = False For Each r In rng.Areas Set r = r.Offset(-1).Resize(r.Count + 1) With Intersect(r.EntireRow, .Cells) .Borders(xlInsideHorizontal).LineStyle = xlNone End With With r.Offset(, 4).Resize(, 2) With .Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlHairline End With End With Next Application.ScreenUpdating = True End If End With End Sub
< 自分のペースで、シフト自由に働ける >
パート・アルバイト(東京都)この条件の求人をもっと見る
求人の検索結果を見る
< いつもと違うしごとも見てみませんか? >
覆面調査に関する求人(東京都)この条件の求人をもっと見る