
エクセルのテーブル機能を使って毎日何行か追加していく表を作っています。
一番左の列に日付を入れているのですが、見やすくするために日付が変わる行と行の間に太い線を入れて区切りを付けたいと思っています。
今は同じ日付の最後の行に毎日セルの書式設定の罫線の下太罫線をいれているのですが、この方法ですとフィルター機能で表示する行を制限した時に罫線を入れている行も非表示になってしまうと一緒に消えてしまいます。
何か一番左の列の日付が変わる行のところに区切り線を入れる方法があれば教えてください。
使っているエクセルのバージョンは2010です。
No.8ベストアンサー
- 回答日時:
No.1・7です。
>その方が見やすいのですが・・・
実は当方も投稿後そう思っていました。
余計なお世話ですべてのセルに格子罫線にしていたので確かに、下太罫線が判りにくかったですね。
実は前回のコードをほんの少しだけ変えるだけです。
>Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
の行を
>Range("A1").CurrentRegion.Borders.LineStyle = xlNone
に変更してみてください。
※ 範囲内の罫線は下太罫線だけとします。m(_ _)m
教えてもらったように変更して最初に思っていた通りの表になりました。
どうもありがとうございました、これで毎日の表のチェックが楽になります。
便利そうなのでマクロにもちょっと興味が出ましたが、私の生活だとエクセルを
使う場面自体が少ないのでそのために長い勉強時間を使うのはやはり難しいので、
ここで質問してtom04さんに教えてもらわないとこんなにうまく行かなかったと思います。
質問をした時は簡単な事で、自分がその方法を知らないだけかと思っていたのですが
意外と難し要求だったようで色々教えてもらった皆さんに改めて御礼を言わせてもらいます
どうもありがとうございました
No.7
- 回答日時:
No.1です。
まだ解決していないようなので・・・
>マクロは難しくてちゃんと使えるようになるのはちょっと自分には無理かなと思いました。
とありますが、一般操作では難しいようなので
今回もお望みでないVBAです。
ただし、一度設定しておくと何もご自身でマクロの操作をしなくても
フィルタ操作を行うだけで下太罫線を表示する方法にしてみました。
前提条件として、1行目は項目行でデータは2行目以降にあるとします。
どこか使っていない遠く離れた列の2行目以降(1行目は避けてください)に
=SUBTOTAL(9,B:B)
という数式を入れておいてください。
(数式そのものは意味はないのですが、フィルタ時にChangeイベントを発生させるためです)
そして画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
フィルタの操作をしてみてください。
Private Sub Worksheet_Calculate() 'この行から//
Dim i As Long, k As Long, lastCol As Long
Application.ScreenUpdating = False
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row + 1
If Cells(i, "A") <> Cells(i + 1, "A") Then
Cells(i, "A").Resize(, lastCol).Borders(xlEdgeBottom).Weight = xlMedium
End If
If Rows(i).Hidden = True Then
k = i
Do
k = k + 1
If Rows(k).Hidden = False Then Exit Do
Loop
If Cells(k, "A") <> Cells(i, "A") Then
Cells(i - 1, "A").Resize(, lastCol).Borders(xlEdgeBottom).Weight = xlMedium
End If
End If
Next i
Application.ScreenUpdating = True
End Sub 'この行まで//
※ 1行目で最終列を取得していますので、前述の関数は1行目に入れないようにするためです。
※ とりあえず各セルの枠線は「格子」になるようにしています。
尚、ファイル保存時は「ファイルの種類」で「マクロ有効ブック」として
名前を付けて保存してください。m(_ _)m
前回は自分で出来る様にもなろうともせずに新しいマクロを作ってもらう
というのも厚かましいかと思い遠慮したのですが今回作ってもらったマクロは
完璧に私の思った通りの動作をしました、ありがとうございます
もし良ければ日付が変わるところの横太線だけを表示させる(縦と横の細い線を表示させない)マクロもお願いしてもいいでしょうか
その方が見やすいのですが、自分だとマクロの何処の部分を削ったらいいかすら
全くわからないので

No.5
- 回答日時:
> 昨日のような例で言いますとA1~A10が6月21日、A11~A15が6月22日の時10行目と11行目がオートフィルターで隠れてしまうと6月21日と6月22日の間に罫線がない状態になってしまいました。
> オートフィルターで罫線を使うのは難しいみたいですが、また何かありましたらよろしくお願いします。
たしかに前後のセルが両方フィルターで非表示になると罫線も見えませんね。
おっしゃるとおりオートフィルタで罫線を使うのは限界があるようです。
お役にたてずすみません!
いえ、何度も親切にありがとうございました。
今回のことには直接関係ないですが、教えてもらったことは便利そうなので
これからエクセルを使う時に活かしていきたいと思います。

No.4
- 回答日時:
> 例えばA1~A10が6月21日、A11~A15が6月22日だとすると、教えてもらった方法で
> 10行目に罫線を入れることができたのですが、オートフィルターで10行目が消えた時には9行目に
> 新たに罫線が引かれないので6月21日と6月22日の間に罫線がない状態になってしまいました。
たしかにおっしゃるとおり消えてしまいますね。
これは失礼いたしました!
条件付き書式に次のルールを追加すれば大丈夫だと思います。
最初にお伝えしたのは「下のセルと日付が違う時に下の罫線を表示する」という条件でした。
さらにもう1つ「上のセルと比較して日付が違う時に上の罫線を表示する」という条件を追加します。
条件の数式はこうなります。
「=OFFSET($A2,-1,0)<>$A2」
OFFSET関数を使って1つ上のセルを指定します。
一応わたしのほうでテストしてみて大丈夫そうだったので試してみてください~。
今日もありがとうございます、私も昨日教えてもらった時に試してみて「=$A1 <>$A2」で日付の変更の下のセルを指定できるなと上の罫線を引いてみたりもしたのですがやはりダメで、
今回教えてもらった「=OFFSET($A2,-1,0)<>$A2」でも昨日と同じように罫線を引いた行がオートフィルターで隠れてしまった場合罫線も一緒に消えてしまいました。
昨日のような例で言いますとA1~A10が6月21日、A11~A15が6月22日の時10行目と11行目がオートフィルターで隠れてしまうと6月21日と6月22日の間に罫線がない状態になってしまいました。
オートフィルターで罫線を使うのは難しいみたいですが、また何かありましたらよろしくお願いします。

No.3
- 回答日時:
条件付き書式設定を使えば日付が変わるごとに罫線を入れられますよ。
ただ罫線の太さは選べないので、該当する行だけ下の罫線を入れるか、罫線の色を変えれば同じような感じになります。
もちろんフィルター機能を使っても罫線は消えることなく表示されます。
まず、表全体を選択し [ホーム]タブの[条件付き書式設定]をクリック。
[条件付き書式設定]の[新しい書式ルール]をクリック。
一番下の[数式を使用して書式設定するセルを決定]をクリックします。
[次の数式を満たす場合に値を書式設定]の欄の中に数式を入力します。
たとえば日付がA列でA2のセルから入力されている場合、上のセルと下のセルの日付が違うという条件なので次の数式を入力。
「=$A2 <>$A3」
[書式]をクリックし[セルの書式設定]の[罫線]で下の罫線を指定し「OK」をクリックします。
もしここでたとえば赤の罫線を指定すれば、赤い罫線をつけることができます。
ありがとうございます、罫線の太さは重要じゃないので教えてもらった方法を
試したらフィルター機能を使う前は望んだ位置に罫線を引くことができたのですが、
フィルターで罫線の入った行を非表示にしてしまうと罫線も一緒に消えてしまいました。
例えばA1~A10が6月21日、A11~A15が6月22日だとすると、教えてもらった方法で
10行目に罫線を入れることができたのですが、オートフィルターで10行目が消えた時には9行目に
新たに罫線が引かれないので6月21日と6月22日の間に罫線がない状態になってしまいました。
もし何か解決法があればまたよろしくお願いします。
No.2
- 回答日時:
オートフィルターではなく
フィルターオプションを使って
別のシート或いは、右の方の列に
データを抽出する方法ではダメでしょうか。
http://www.eurus.dti.ne.jp/yoneyama/Excel/filter …
に詳しく説明されてます。
こちらの方法で抽出されたデータに条件付き書式で
左列の日付が変わったら下罫線を入れると云う
条件付き書式の設定が可能です。
条件付き書式で色々出来るのですね、今回の表はオートフィルターを使って
見る時に表示項目を色々切り替えて見たいのでデータを抽出する方法は
向いてませんがまた別の表にまとめ直す時に参考にさせてもらいます。
どうもありがとうございました。
No.1
- 回答日時:
こんばんは!
>フィルター機能で表示する行を制限した時に罫線を入れている行も非表示になってしまうと一緒に消えてしまいます。
フィルタを掛け、表示されている行で日付が異なればその境に下太罫線を表示させたい!
という解釈です。
VBAになってしまいますが、一例です。
尚、1行目が項目行でデータは2行目以降にあるとします。
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub 罫線() 'この行から//
Dim i As Long, lastCol As Long
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Application.ScreenUpdating = False
Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(i, "A") <> Cells(i + 1, "A") Then
Cells(i, "A").Resize(, lastCol).Borders(xlEdgeBottom).Weight = xlMedium
End If
If Rows(i).Hidden = False And Rows(i + 1).Hidden = True Then
Cells(i, "A").Resize(, lastCol).Borders(xlEdgeBottom).Weight = xlMedium
End If
Next i
Application.ScreenUpdating = True
End Sub 'この行まで//
※ フィルタ解除後もマクロを実行してください。
同じ日付の行も下太罫線になっている行があると思いますので・・・m(_ _)m
こんばんは、丁寧な回答ありがとうございます。
試めさせてもらったところ日付変更以外のフィルターで隠れた行がある所にも区切りの太下線が付いてしまって上手く行かなく、マクロは難しくてちゃんと使えるようになるのはちょっと自分には無理かなと思いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 エクセルの罫線がパワポに貼り付けると見えなくなる。 3 2022/12/27 15:23
- フリーソフト 付箋ソフトについて 5 2022/10/17 08:04
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) Excelのマクロを教えていただけないでしょうか? 1 2023/07/06 19:56
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Excel(エクセル) vba セルの罫線について教えてください 2 2022/12/28 17:14
- Excel(エクセル) エクセルに詳しい方 よく読んでからのご回答お願いします 外部からデータが来ますが、日付が202201 7 2022/06/29 16:15
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの条件付き書式設定の太い...
-
Excelの外枠太罫線を2~3倍さ...
-
罫線が引かれているセルの個数...
-
excel2003 罫線だけを保護したい
-
エクセルで罫線も一緒に並び替...
-
EXCELで、下線の太さを変...
-
エクセル の縦線
-
決まった罫線のなかで、文章入...
-
【エクセル】謎の枠線の消し方
-
エクセルで文字を入力すると罫...
-
エクセル
-
Excel カメラ機能でセル...
-
Excelでアンダーラインに文字が...
-
パワーポイントで、表の一部を...
-
エクセル 入力されていない線...
-
条件付き書式で自動で斜線の罫...
-
罫線の色を薄くしたい
-
EXCELのオートフィルタで罫線が...
-
エクセルのアンダーラインについて
-
エクセル表の罫線(縦)が消せ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excel2003 罫線だけを保護したい
-
Excelの条件付き書式設定の太い...
-
Excelの外枠太罫線を2~3倍さ...
-
EXCELで、下線の太さを変...
-
罫線の色を薄くしたい
-
【エクセル】謎の枠線の消し方
-
エクセルで文字を入力すると罫...
-
エクセル 入力されていない線...
-
エクセルで罫線も一緒に並び替...
-
EXCELのオートフィルタで罫線が...
-
エクセル の縦線
-
エクセルのアンダーラインについて
-
パワーポイントで、表の一部を...
-
決まった罫線のなかで、文章入...
-
エクセル
-
エクセル表の罫線(縦)が消せ...
-
罫線が引かれているセルの個数...
-
OpenOfficeのCalcで罫線の削除...
-
Excelでアンダーラインに文字が...
-
<EXCEL>ページ最後の行の罫線...
おすすめ情報