• 締切済み

エクセルでA列セルが空白の時その行に罫線を引くには

エクセルでA列セルが空白の時、その行の下側のみに2重罫線を引くマクロを教えて下さい。 色々試しましたがうまくいきません。例えば下記の様な表で3行目、7行目、12行目の各下側にのみ2重罫線を引くマクロです。行数と空白行は、日々取り込んでいるデータによって変わります。知恵をお貸し下さい。(A列空白セルのC列にはSUM関数を入れております。うまく表記が出来ませんので念のため)        A列   B列   C列 1行     123    酒    100 2行     123    酒    100 3行  ========================  4行     215   ビール   200 5行     215   ビール   200 6行     215   ビール   200 7行 =========================   8行     324    ワイン  300 9行     324    ワイン  300 10行     324    ワイン  300 11行     324    ワイン  300 12行 ========================                 

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

一例です。 Sub sample() On Error Resume Next With _ Range("a1", Cells(Rows.Count, 1).End(xlUp).Offset(1)).Resize(, 3) .Borders.LineStyle = False .SpecialCells(xlCellTypeBlanks).Borders(xlEdgeBottom).LineStyle = xlDouble End With End Sub

hiroataru
質問者

補足

ご回答ありがとうございます。 私の表記の仕方が悪かったようです。 A列が空白行のC列には合計が入っており、その部分には2重罫線が引かれませんでした。 時間のある時に、応用させていただきます。ありがとうございました。

回答No.2

Option Explicit Sub Separator() Const xKey_Col = 1 'Breakキー列 Const xKey_Col2 = 3 '合計列 Const xHeads = 1 '見出し行数 Dim xLast As Long Dim nn As Long ActiveSheet.UsedRange.Borders.LineStyle = xlLineStyleNone xLast = Cells(Rows.Count, xKey_Col2).End(xlUp).Row If (xLast > xHeads) Then For nn = (xHeads + 1) To xLast If IsEmpty(Cells(nn, xKey_Col)) Then Range("A1:C1").Offset(nn - 1, 0).Borders(xlEdgeBottom).LineStyle = xlDouble Else ' Range("A1:C1").Offset(nn - 1, 0).Borders.LineStyle = xlLineStyleNone End If Next End If End Sub

hiroataru
質問者

お礼

ご回答ありがとうございます。すでに表を整えるマクロを組んでおり、その最後に入れても問題なく動作しました。それと、直前に格子状の罫線を入れるマクロを入れてましたので、ActiveSheet.UsedRange.Borders.LineStyle = xlLineStyleNone を削除させて頂きました。早速使わせて頂きます。ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

まぁ、一行ずつ舐めていっても大したことはないと思います。 sub macro1()  dim r as long  for r = 1 to range("A65536").end(xlup).row + 1   range("A1:C1").offset(r - 1, 0).borders(xledgebottom).linestyle = iif(cells(r, "A") = "", xldouble, xlnone)  next r end sub

hiroataru
質問者

お礼

早速のご回答ありがとうございます。 このマクロを単独で動かすと問題なく出来るのですが、すでにいくつかのマクロを組み合わせており、その最後にこのマクロを入れるとコンパイルエラーと出ました。休日に原因を探り当て修正をかけて見ます。参考にさせていただきます。ありがとうございました。

関連するQ&A

  • エクセル 空白行にSUM関数を入力するには

    下記の様な、データ行数の決まっていない各空白行に自動でSUM関数を入力するにはどうすれば良いでしょうか。        A列   B列   C列 1行     123    酒    100 2行     123    酒    100 3行(空白)            (SUM)   4行     215   ビール   200 5行     215   ビール   200 6行     215   ビール   200 7行(空白)            (SUM) 8行     324    ワイン  300 9行     324    ワイン  300 10行     324    ワイン  300 11行     324    ワイン  300 12行(空白)           (SUM) (SUM)表記のセルにそれぞれのデータのSUM関数を自動で入れたいのですが。 実際のデータは3千行ほどあります。よろしくお願いいたします。

  • エクセルで空白行に1個上の行を一度にコピー

           A列   B列   C列 1行     123    酒    100 2行     123    酒    100 3行                (合計)   4行     215   ビール   200 5行     215   ビール   200 6行     215   ビール   200 7行                (合計) 8行     324    ワイン  300 9行     324    ワイン  300 10行     324    ワイン  300 11行     324    ワイン  300 12行               (合計) (合計)表記の行のA列B列にひとつ上の行の数字文字をコピーし、かつ合計の行だけ残し、 他の行は削除したいのですが。一度にできる良い方法がございましたら教えて頂けませ んでしょうか。要は合計だけの表作成です。 実際のデータは3千行ほどあります。何卒よろしくお願いいたします。

  • Excel2003で、指定列に空白セルのある行の数をカウントしたいので

    Excel2003で、指定列に空白セルのある行の数をカウントしたいのですが。 下記の様なセルがあり、A列とC列が共に空白の行の数をカウントしたいのですが どの様にすれば良いでしょうか? (3行目と6行目がA列とC列のセルが空白なので、「2」を表示したいのです)  ABC 1あか 2い さ 3 き 4う 5え し 6 く 7 けす 宜しくお願い致します。

  • Excelで、セル範囲(自分の1行下:空白セルの上)、を求めることできますか?

    Excelで、セル範囲(自分の1行下:空白セルの上)、を求めることできますか? A列 ────── 2004年   3 ← =sum(A2:A3) 2004/11  1 2004/12  2        ← 空行 2005年  5 ← =sum(A6:A8) 2005/1  3 2005/2  2 2005/3  0        ← 空行 sum()の引数(合計範囲)を求めることできますか? 手作業で"A6:A8"等入力していかないとできないのでしょうか?

  • 【マクロ】クリックすると空白を含む列を非表示に

    上司にExcelのデータが見づらいと言われて困っています。 下記のようなマクロやVBAを教えていただけないでしょうか? 例えば、 A2のセルをクリックすると、その行(2行目)から空白セルを検索して、そのセルを含む列を非表示にして、データが入っている列だけを表するようなマクロってないでしょうか? (要は、C2とE2が空白セルのとき、A2をクリックして、A/B/D/F~の列だけ表示されるようになるマクロです。 同様に3行目でも、空白セルがB3、C3なら、A3をクリックした時、A/D/E…列だけ表示されて、B・C列が非常時になるような。) 似たような機能があれば、A2クリックでなく別にボタン等を作っても構いません。 ややこしくて、申し訳ございませんが、本当に困っているので、 どうかよろしくお願いいたします。

  • エクセルマクロ、空白行(セル)の挿入

    データがA、B、C、D、E列100行まであります。 このうちD、E列を除き、エクセルのマクロで1行ごとに空白で10行挿入したいです。 (A、B、C、D列のデータに空白セルを10行分挿入し、下にシフトするイメージ。D、E列はそのまま。) ご教授頂きたく、お願いします。

  • 空白セルとして認識しない

    win2000, excel2000です。 例えば、C1に=IF(A1="","",B1)という式が入っています。 この式がC1000まで入っています。 C1~C1000には空白行が散在します。 C列のセルが空白の行をマクロでなく削除したいので C1~C1000を選択肢、「コピー→形式を選択→値」で C1~C1000にコピーします。 C1~C1000を選択し、 「ジャンプ→セルの選択→空白セル」 を実行しても「見当たりません」と返されます。 オートフィルターで空白以外のセルを実行すると、 空白と認識されるようですが、 ジャンプではだめなのでしょうか? オートフィルターで印刷には支障がないのですが、 このbookをメールで送ったりするので、 できれば空白行をマクロでなく削除した後で 送りたいのですが。

  • A列の空白のセルを含んだ最終列を削除するには・・・

    マクロを使用してA列の空白のセルを含んだ最終列およびその左隣の列を削除するにはどうしたらよいのでしょうか? よろしくお願いします。

  • マクロにて空白のセルを一括して消去でなく削除したい

    空白のセルを一括して、空白セルについた色も含めてマクロで全て削除したい。 現在のデータ(仕様)について 1.Sheet2に列ごとにセルに色をつけ、データもあるとします。 2.A列10行・B列6行・C;列18行というように、列によってデータの入った範囲が違います。 3.どの行も途中に空白セルはなく、詰めたデータです。 以上です マクロで一括処理したいと思いますが、このようなことができるコードを教えて頂けませんか。よろしくお願いします。

  • エクセルの行追加

    下記の表でA列の番号が変わったところに自動で行を挿入する方法を教えて下さい。        A列   B列 1行     123   酒 2行     123   酒   3行     123   酒   4行     215   ビール 5行     215   ビール 6行     324   ワイン 7行     324   ワイン 3行目の下、5行目の下に一度に行を挿入したいのですが。 実際のデータは3千行ほどあり、番号も100種類ほどあります。 よろしくお願いいたします。

専門家に質問してみよう