【先着1,000名様!】1,000円分をプレゼント!

エクセルのテーブル機能を使って毎日何行か追加していく表を作っています。
一番左の列に日付を入れているのですが、見やすくするために日付が変わる行と行の間に太い線を入れて区切りを付けたいと思っています。
今は同じ日付の最後の行に毎日セルの書式設定の罫線の下太罫線をいれているのですが、この方法ですとフィルター機能で表示する行を制限した時に罫線を入れている行も非表示になってしまうと一緒に消えてしまいます。
何か一番左の列の日付が変わる行のところに区切り線を入れる方法があれば教えてください。

使っているエクセルのバージョンは2010です。

このQ&Aに関連する最新のQ&A

A 回答 (8件)

No.1・7です。



>その方が見やすいのですが・・・
実は当方も投稿後そう思っていました。
余計なお世話ですべてのセルに格子罫線にしていたので確かに、下太罫線が判りにくかったですね。

実は前回のコードをほんの少しだけ変えるだけです。
>Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
の行を
>Range("A1").CurrentRegion.Borders.LineStyle = xlNone
に変更してみてください。

※ 範囲内の罫線は下太罫線だけとします。m(_ _)m
    • good
    • 1
この回答へのお礼

教えてもらったように変更して最初に思っていた通りの表になりました。
どうもありがとうございました、これで毎日の表のチェックが楽になります。

便利そうなのでマクロにもちょっと興味が出ましたが、私の生活だとエクセルを
使う場面自体が少ないのでそのために長い勉強時間を使うのはやはり難しいので、
ここで質問してtom04さんに教えてもらわないとこんなにうまく行かなかったと思います。

質問をした時は簡単な事で、自分がその方法を知らないだけかと思っていたのですが
意外と難し要求だったようで色々教えてもらった皆さんに改めて御礼を言わせてもらいます
どうもありがとうございました

お礼日時:2015/06/28 13:09

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
    • good
    • 1
この回答へのお礼

前回は自分で出来る様にもなろうともせずに新しいマクロを作ってもらう
というのも厚かましいかと思い遠慮したのですが今回作ってもらったマクロは
完璧に私の思った通りの動作をしました、ありがとうございます
もし良ければ日付が変わるところの横太線だけを表示させる(縦と横の細い線を表示させない)マクロもお願いしてもいいでしょうか
その方が見やすいのですが、自分だとマクロの何処の部分を削ったらいいかすら
全くわからないので

お礼日時:2015/06/27 22:44

思い切って、日付ごとに何種類かの文字色を使って見れば?


見にくかったら 逆にセルに色付けして見るとか・・・。

超アナログ的な発想ですが・・・。
    • good
    • 1
この回答へのお礼

ありがとうございます、いい方法ですね
日付を5色とか10色に分けておけばオートフィルターを使った時にも
まず被ることもないので日の変わり目がわかりやすくなりそうです
次に自力でこういう表を作る時に参考にさせてもらいます

お礼日時:2015/06/27 22:40

> 昨日のような例で言いますとA1~A10が6月21日、A11~A15が6月22日の時10行目と11行目がオートフィルターで隠れてしまうと6月21日と6月22日の間に罫線がない状態になってしまいました。


> オートフィルターで罫線を使うのは難しいみたいですが、また何かありましたらよろしくお願いします。

たしかに前後のセルが両方フィルターで非表示になると罫線も見えませんね。
おっしゃるとおりオートフィルタで罫線を使うのは限界があるようです。

お役にたてずすみません!
    • good
    • 1
この回答へのお礼

いえ、何度も親切にありがとうございました。
今回のことには直接関係ないですが、教えてもらったことは便利そうなので
これからエクセルを使う時に活かしていきたいと思います。

お礼日時:2015/06/28 13:08

専門家紹介

小野眸

職業:ビジネスアドバイザー

はじめまして!
小野 眸(おの ひとみ)です。

ビジネス現場の最前線で働く方々を対象に現場で必要とされるスキルを少人数制やマンツーマンで講習を行っております。

一般的な講習との違いは現場で必要とされるスキルだけに絞っているということ。現場での生の声や仕事の現状を常に見続け、そこで必要とされるスキルを把握し講習に取り入れています。

私自身は文系の大学を卒業後、総合商社のIT部門に配属になりシステム開発の仕事に従事。その後正社員・アルバイト・派遣・フリーランス・経営者と様々な立場でIT業界の仕事に従事してきました。

講師業のほかにExcelマクロによる業務改善の仕事で、ビジネス現場での問題解決に携わり、現場で求められている人材像を肌で感じています。

お客様から、ITオタクとは程遠い人間味あふれ温かみのある講習、実務に寄り添った講習とのお声をいただいております。

詳しくはこちら

専門家

> 例えばA1~A10が6月21日、A11~A15が6月22日だとすると、教えてもらった方法で


> 10行目に罫線を入れることができたのですが、オートフィルターで10行目が消えた時には9行目に
> 新たに罫線が引かれないので6月21日と6月22日の間に罫線がない状態になってしまいました。

たしかにおっしゃるとおり消えてしまいますね。
これは失礼いたしました!

条件付き書式に次のルールを追加すれば大丈夫だと思います。


最初にお伝えしたのは「下のセルと日付が違う時に下の罫線を表示する」という条件でした。
さらにもう1つ「上のセルと比較して日付が違う時に上の罫線を表示する」という条件を追加します。
条件の数式はこうなります。

「=OFFSET($A2,-1,0)<>$A2」

OFFSET関数を使って1つ上のセルを指定します。

一応わたしのほうでテストしてみて大丈夫そうだったので試してみてください~。
    • good
    • 2
この回答へのお礼

今日もありがとうございます、私も昨日教えてもらった時に試してみて「=$A1 <>$A2」で日付の変更の下のセルを指定できるなと上の罫線を引いてみたりもしたのですがやはりダメで、
今回教えてもらった「=OFFSET($A2,-1,0)<>$A2」でも昨日と同じように罫線を引いた行がオートフィルターで隠れてしまった場合罫線も一緒に消えてしまいました。

昨日のような例で言いますとA1~A10が6月21日、A11~A15が6月22日の時10行目と11行目がオートフィルターで隠れてしまうと6月21日と6月22日の間に罫線がない状態になってしまいました。
オートフィルターで罫線を使うのは難しいみたいですが、また何かありましたらよろしくお願いします。

お礼日時:2015/06/23 20:41

専門家紹介

小野眸

職業:ビジネスアドバイザー

はじめまして!
小野 眸(おの ひとみ)です。

ビジネス現場の最前線で働く方々を対象に現場で必要とされるスキルを少人数制やマンツーマンで講習を行っております。

一般的な講習との違いは現場で必要とされるスキルだけに絞っているということ。現場での生の声や仕事の現状を常に見続け、そこで必要とされるスキルを把握し講習に取り入れています。

私自身は文系の大学を卒業後、総合商社のIT部門に配属になりシステム開発の仕事に従事。その後正社員・アルバイト・派遣・フリーランス・経営者と様々な立場でIT業界の仕事に従事してきました。

講師業のほかにExcelマクロによる業務改善の仕事で、ビジネス現場での問題解決に携わり、現場で求められている人材像を肌で感じています。

お客様から、ITオタクとは程遠い人間味あふれ温かみのある講習、実務に寄り添った講習とのお声をいただいております。

詳しくはこちら

専門家

条件付き書式設定を使えば日付が変わるごとに罫線を入れられますよ。



ただ罫線の太さは選べないので、該当する行だけ下の罫線を入れるか、罫線の色を変えれば同じような感じになります。
もちろんフィルター機能を使っても罫線は消えることなく表示されます。


まず、表全体を選択し [ホーム]タブの[条件付き書式設定]をクリック。

[条件付き書式設定]の[新しい書式ルール]をクリック。
一番下の[数式を使用して書式設定するセルを決定]をクリックします。

[次の数式を満たす場合に値を書式設定]の欄の中に数式を入力します。
たとえば日付がA列でA2のセルから入力されている場合、上のセルと下のセルの日付が違うという条件なので次の数式を入力。

「=$A2 <>$A3」


[書式]をクリックし[セルの書式設定]の[罫線]で下の罫線を指定し「OK」をクリックします。

もしここでたとえば赤の罫線を指定すれば、赤い罫線をつけることができます。
    • good
    • 1
この回答へのお礼

ありがとうございます、罫線の太さは重要じゃないので教えてもらった方法を
試したらフィルター機能を使う前は望んだ位置に罫線を引くことができたのですが、
フィルターで罫線の入った行を非表示にしてしまうと罫線も一緒に消えてしまいました。

例えばA1~A10が6月21日、A11~A15が6月22日だとすると、教えてもらった方法で
10行目に罫線を入れることができたのですが、オートフィルターで10行目が消えた時には9行目に
新たに罫線が引かれないので6月21日と6月22日の間に罫線がない状態になってしまいました。
もし何か解決法があればまたよろしくお願いします。

お礼日時:2015/06/22 20:41

専門家紹介

小野眸

職業:ビジネスアドバイザー

はじめまして!
小野 眸(おの ひとみ)です。

ビジネス現場の最前線で働く方々を対象に現場で必要とされるスキルを少人数制やマンツーマンで講習を行っております。

一般的な講習との違いは現場で必要とされるスキルだけに絞っているということ。現場での生の声や仕事の現状を常に見続け、そこで必要とされるスキルを把握し講習に取り入れています。

私自身は文系の大学を卒業後、総合商社のIT部門に配属になりシステム開発の仕事に従事。その後正社員・アルバイト・派遣・フリーランス・経営者と様々な立場でIT業界の仕事に従事してきました。

講師業のほかにExcelマクロによる業務改善の仕事で、ビジネス現場での問題解決に携わり、現場で求められている人材像を肌で感じています。

お客様から、ITオタクとは程遠い人間味あふれ温かみのある講習、実務に寄り添った講習とのお声をいただいております。

詳しくはこちら

専門家

オートフィルターではなく


フィルターオプションを使って
別のシート或いは、右の方の列に
データを抽出する方法ではダメでしょうか。
http://www.eurus.dti.ne.jp/yoneyama/Excel/filter …
に詳しく説明されてます。
こちらの方法で抽出されたデータに条件付き書式で
左列の日付が変わったら下罫線を入れると云う
条件付き書式の設定が可能です。
    • good
    • 1
この回答へのお礼

条件付き書式で色々出来るのですね、今回の表はオートフィルターを使って
見る時に表示項目を色々切り替えて見たいのでデータを抽出する方法は
向いてませんがまた別の表にまとめ直す時に参考にさせてもらいます。
どうもありがとうございました。

お礼日時:2015/06/22 20:03

こんばんは!



>フィルター機能で表示する行を制限した時に罫線を入れている行も非表示になってしまうと一緒に消えてしまいます。

フィルタを掛け、表示されている行で日付が異なればその境に下太罫線を表示させたい!
という解釈です。
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
    • good
    • 1
この回答へのお礼

こんばんは、丁寧な回答ありがとうございます。
試めさせてもらったところ日付変更以外のフィルターで隠れた行がある所にも区切りの太下線が付いてしまって上手く行かなく、マクロは難しくてちゃんと使えるようになるのはちょっと自分には無理かなと思いました。

お礼日時:2015/06/21 21:33

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel、条件付書式で、自動で線を引く

Excel、条件付書式で、自動で線を引く

宜しくお願いします。

Excelの表があります。
担当毎に顧客をまとめています。
担当が変わる位置に区切り線を自動に引けるように、条件付書式で出来ないでしょうか。
表は、図の通りです。

行4 行7下部に区切り線を引いていますが、このようなことが、条件付書式で出来ないか教えてください。
図 行9下部には区切り線が引かれていませんが、此は、比較のためにそうしているのであり、
区切り線を引きたいです。

どこかでみたような気がして、さがしたのですが、わかりません。
御願いします。

Aベストアンサー

条件付き書式では、罫線の太さが変えられません。
そこで、区切りではない箇所の罫線は実線ではなく細かい点線にした方が良いでしょう。
周囲と縦の罫線のみ普通に引いておいて、A2:C11を選択して以下の様な条件付き書式を設定します。

条件1 数式が =($A3="") 書式 細かい点線を下線に
条件2 数式が =($A3<>"") 書式 破線を下線に

QExcelの条件付き書式設定の太い罫線

Excel 2000 です。

条件付き書式の「書式」ボタンを押して表示される「セルの書式設定」の罫線タブの「線」の「スタイル」には、太い線がありません。

条件付き書式では、太い罫線は設定できないということでしょうか。

Aベストアンサー

太線を指定させないようです。
VBAで線の太さは
With Selection.FormatConditions(1).Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
のxlThinのところで指定してます(マクロ記録)。
xlThick(太線)に変えて実行してみると、設定できませんとエラーになります。それから考えても、制限しているらしい。
「エラーが出ずに、何の効果なし」のパターンではないので、制約しているのはハッキリしてます。しかしなぜ、そこまでするのか疑問です。(エクセル2000)

Qエクセルにて一定の条件の際に罫線を引く

エクセルにて画像の様な形式のグラフを作成しております。
C列に日付をランダムで入力します。
例として
2/28~5/10にて入力しております。
C列に入力した日付で一番早い日が基準となり、D列3行へ反映されます。
その際に早い日付が
15日以降であればD3は15となり
15日未満であればD3は1となるようしております。
画像ではC7 2/28が一番早い日となりますので、D3は15となっております。
今回は、月が変わる列で罫線を入力したいと考えております。
画像の場合K列、AA列です。
条件付書式にてトライしているのですが・・・。

D3  =IF(DAY(MIN(C4:C14))<15,(DATE(YEAR(MIN(C4:C14)),MONTH(MIN(C4:C14)),1)),(DATE(YEAR(MIN(C4:C14)),MONTH(MIN(C4:C14)),15)))

E3  =IF(DAY(D3+2)=2,D3+1,D3+2)



AF3  =IF(DAY(AE3+2)=2,AE3+1,AE3+2)



D2 = D3

E2  =IF(MONTH(D3)=MONTH(E3),"",E3)



AF2  =IF(MONTH(AE3)=MONTH(AF3),"",AF3)
上記式をいれております。
説明が下手で伝わりにくいとは思いますが、
どなたかお教え願います。

エクセルにて画像の様な形式のグラフを作成しております。
C列に日付をランダムで入力します。
例として
2/28~5/10にて入力しております。
C列に入力した日付で一番早い日が基準となり、D列3行へ反映されます。
その際に早い日付が
15日以降であればD3は15となり
15日未満であればD3は1となるようしております。
画像ではC7 2/28が一番早い日となりますので、D3は15となっております。
今回は、月が変わる列で罫線を入力したいと考えております。
画像の場合K列、AA列です。
条件付書式にてトライし...続きを読む

Aベストアンサー

まずD2の書式表示形式はmなんですよね。
だったらD2=D3 をそのまま右にオートフィルしていいんです。
条件書式の数式はその範囲選択の影響を受けるのでE2からAF2を
選択して条件書式を選んで数式を使用して云々選び
=MONTH(D$2)=MONTH(E$2)
で書式としてはフォントの色を白にすれば月替わりにしか見えません。

罫線も同様で基本的には、条件がマッチしたときつまり
隣と=month()の結果が違う時だけ左の縦罫引くだけですけど。
罫線の範囲は縦に広がることを想定して$を入れました。
E2からAF14を選択して
=MONTH(D$2)<>MONTH(E$2)
こっちは不等号ですね。
縦罫がすでに入っているから太さを変えれば
わかりやすいんじゃないかな?

Qエクセルで日にちを入力すると矢印が自動的に引かれるとか。

こんにちは。
エクセルで作業の進捗表を作成しています。

作業開始日と終了日を入力すると、
開始日~終了日が自動的に矢印として
カレンダーに引かれる関数のような
ものはありますか?

ご存知の方、よろしくお願いします!

Aベストアンサー

一般関数で罫線や図形の直線・矢印を返すことはできませんので、どうしても図形を
使用したい場合は、VBに頼ることになるでしょう。
でも、
次のような方法もあります。

B1:AF1 に 日付(数字のみではなく日付データの"日"を表示)
     列幅を表示日付の幅程度(22ピクセルくらい?)に縮めます。
A2 に 開始日入力
A3 に 終了日入力
B2:AF2 を「中央揃え」にしておいて B2 に次の式を入力し、AF2 までドラッグコピー
  =IF($A$2=B1,"<",IF($A$3=B1,">",IF(AND($A$2<B1,$A$3>B1),"―","")))

Qエクセル 特定の文字を入れると他のセルの色が変わる

例えばセルA1に[りんご]と入力したらB2からB5までの文字の色が赤に変わる・・・などということは、関数や書式の設定なので出来るのでしょうか?
おわかりの方教えてくださーい!

Aベストアンサー

B2からB5のセルを選択し
書式メニューの条件付書式設定を選択し
数式が
=$A$1="りんご"
と入力し、書式で色を赤に変更してください。

Q【エクセル】セルに入力したら罫線を引く方法?

空白のセルに文字を入力たときに、自動的に表の罫線を引くような設定は、どこでできますか?
以前見たことがあるのですが、再現できません。
どなたか、教えてください。

Aベストアンサー

#2です。

「セルの値が」「次の値に等しくない」「=""」
・・の方が簡単かもしれません。

QExcel最後の行まで選択するマクロの書き方

こんにちは。

Excel 2010を使用しています。
マクロの記録でデーターを並び替えています。
やりたいことは並び替えたデーターをすべてコピーして
新しいブックにコピーすることです。

ただ毎回データーの行数が異なるのでマクロの記録では
対応できません。
どのようにマクロを書けば、最終行を見つけてすべての
行がコピーできるか書き方をお教えください。

よろしくお願いいたします。

Aベストアンサー

マクロの記録でも対応できますよ!

1. 表の中の1つのセル(項目のセルなど確実にその表と指示できるセル)を選択する
2. [Ctrl]+[Shift]+[*] 表全体の選択
あとは目的のようになるように記録してください

Range("A1").Select
Selection.CurrentRegion.Select
といった具合です

QExcelのフィルタをかけた項目を別のセルに表示したい

2行目にオートフィルタをかけて、組で赤を選んでフィルタをかけたときに、A1のセルに赤と表示させる方法を教えてください。A列のみ印刷するのでA列に組を表示させたいのです。よろしくお願いします。
  A  B
1
2 名前 組
3 佐藤 赤
4 田中 青
5 山田 黄
6 鈴木 赤
7 木村 黄
8 井上 赤

Aベストアンサー

A1に
=INDEX(B3:B100,MATCH(1,SUBTOTAL(3,INDIRECT(ADDRESS(ROW(B3:B100),1))),0))
と入力し、
Ctrlを押しながらShiftを押しながらEnterを押して確定してください。

数式バーを見て
{=INDEX(B3:B100,MATCH(1,SUBTOTAL(3,INDIRECT(ADDRESS(ROW(B3:B100),1))),0))}
のように括弧がついて表示されていましたら入力成功です。

この数式は表示された範囲の一番最初に入力されている値を返します。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QEXCEL VBA で特定の文字に色をつけるマクロを書きたいのですが

コードはどのように書けばよいのでしょうか?

(1)そのようなコードを持っていらっしゃったらいただけないでしょうか?

(2)または、参考になるページがありましたら教えていただけないでしょうか?

現在勉強を始めたところですが、よろしくお願いいたします。

Aベストアンサー

セルの文字列の中に,
たとえば
aaaeeessseee
ssddd
dfg
weeeff
のセルの中の
eeeに赤色文字にする。
セル範囲Range("A1:C6")を対象にしてます。
ーーーー
Sub test01()
Dim cl As Range
For Each cl In Range("a1:c6")
r = InStr(cl, "eee")
If r <> 0 Then
cl.Characters(r, 3).Font.Color = vbRed
End If
Next
End Sub


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング