[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日付が変わったら太罫線を引きたい』(aki)
宜しく御願い致します
B列を2行づつ使い、日付と曜日を入力しています 1行目は直接入力し 2行目は以下数式を使い表示しています
7月18日 入力規則で直接入力 (金) =IF(B2="","",TEXT(B2,"(aaa)")) 7月18日 入力規則で直接入力 (金) =IF(B4="","",TEXT(B4,"(aaa)")) ――――――――――――――――――――――― 7月19日 入力規則で直接入力 (土) =IF(B6="","",TEXT(B6,"(aaa)")) 7月19日 入力規則で直接入力 (土) =IF(B8="","",TEXT(B8,"(aaa)"))
日付が変わったら太罫線を引きたいのですが 条件付設定では太線は引けませんので 過去ログを参照させていただきました http://www.excel.studio-kazu.jp:80/cgi-bin/kazuwiki2.cgi?mycmd=read&mypage=[[20050106132419
これに条件を当てはめ 書式−条件付書式で 数式が =day($b2)=day($b4) で 細線に設定 として見たのですが、うまくいきませんでした。 どうぞご教授をお願いいたします。 (aki)
こんな感じではいかがです? =AND(MOD(ROW(),2),DAY($B1)<>DAY($B3)) (キリキ)(〃⌒o⌒)b
マクロで作ってみました・・・
Sub try() Dim i For i = 2 To Range("B65536").End(xlUp).Row - 1 Step 2 Range("B" & i & ":D" & i).Select If Range("B" & i).Value <> Range("B" & i + 2).Value Then With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThick .ColorIndex = xlAutomatic End With Else With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End If Next Range("A1").Select End Sub
検証していませんので間違っている可能性大です。 間違っていたらどなたかご指摘をお願いします。(リイコ)
2008/7/19 0:35一部修正
スペルが間違ってますよ〜b >.LineStyle = xlContinuos .LineStyle = xlContinuous -追記- ・数式で、空欄を返している ・罫線を引くのは、曜日の下 ・どうせ同じ処理をするなら、Withで纏めてしまう などを考えて、こんな感じに変更させていただきましたが、いかがでしょう? Sub try2() Dim i As Long For i = 2 To Range("B65536").End(xlUp).Row - 1 Step 2 With Range("B" & i & ":D" & i).Offset(1).Borders(xlEdgeBottom) If Len(Range("B" & i)) Then If Range("B" & i).Value <> Range("B" & i + 2).Value Then .LineStyle = xlContinuous .Weight = xlThick Else .LineStyle = xlContinuous .Weight = xlThin End If End If End With Next End Sub #リイコさん、余計な事でしたらごめんなさいねmm (キリキ)(〃⌒o⌒)b
条件付書式を入力しました。 =AND(MOD(ROW(),2),DAY($B1)<>DAY($B3)) 実際はB5から始まってますので =AND(MOD(ROW(),2),DAY($B5)<>DAY($B7)) としまして実施したところ 7月18日 (金) 7月18日 ―――――――― (金) 7月19日 (土) 7月19日 ―――――――― (土)
このように、線が入ってしまいます
Sub try2() Dim i As Long For i = 4 To Range("B65536").End(xlUp).Row - 1 Step 2 With Range("B" & i & ":D" & i).Offset(1).Borders(xlEdgeBottom) If Len(Range("B" & i)) Then If Range("B" & i).Value <> Range("B" & i + 2).Value Then .LineStyle = xlContinuous .Weight = xlThick Else .LineStyle = xlContinuous .Weight = xlThin End If End If End With Next End Sub
で試しましたところ 7月18日 ―――――――― (金) 7月18日 (金) 7月19日 ―――――――― (土) 7月19日 (土)
に線が入ってしまいます 自分もがんばって検証します 宜しく御願い致します。 (aki)
>1行目は直接入力し >2行目は以下数式を使い表示しています
> 7月18日 入力規則で直接入力 > (金) =IF(B2="","",TEXT(B2,"(aaa)")) > 7月18日 入力規則で直接入力 > (金) =IF(B4="","",TEXT(B4,"(aaa)")) 1行目からに直接入力しているのに、 2行目の数式は何で自分のセルを参照しているのでしょうか?
とりあえず、2行目日付、3行目数式といったパターンで。 =AND(B2<>B4,MOD(ROW(B2),2)=1,ISNUMBER(B2)=FALSE) BJ
あぁぁ・・・ ご提示いただいた表の数式が > (金) =IF(B2="","",TEXT(B2,"(aaa)")) こうなっていた為、 2行目からで考えていました。。。 こんな感じではいかがでしょう? 条件付書式 B2好きな範囲を範囲指定し、 書式 → 条件付書式 「数式が」 =AND(MOD(ROW(),2)=0,DAY($B1)<>DAY($B3)) マクロ >With Range("B" & i & ":D" & i).Offset(1).Borders(xlEdgeBottom) の、Offset(1)を取ってしまい With Range("B" & i & ":D" & i).Borders(xlEdgeBottom) (キリキ)(〃⌒o⌒)b
キリキさん、ありがとうございます。 余計なことなんてとんでもないです。勉強になります。 外に出ていたので、返信が遅くなりすみません。
質問者さん
Sub try() Dim i For i = 2 To Range("B65536").End(xlUp).Row - 1 Step 2 ' ~~~ここが2なのは、データに見出しが無いときです。1行目が見出しなら3に。 キリキさんのご指摘を受けスペルは修正いたします。(リイコ)
=AND(MOD(ROW(),2)=0,DAY($B1)<>DAY($B3)) 自分の設定がいけないのか、変化がありませんでした
Sub try2() Dim i As Long For i = 6 To Range("B65536").End(xlUp).Row - 1 Step 2 With Range("B" & i & ":D" & i).Borders(xlEdgeBottom) If Len(Range("B" & i)) Then If Range("B" & i).Value <> Range("B" & i + 2).Value Then .LineStyle = xlContinuous .Weight = xlThick Else .LineStyle = xlContinuous .Weight = xlThin End If End If End With Next End Sub
見出しが4行目なので「6」に設定し
こちらは完璧に動作しました
しかし行が足りないとき
Sub 挿入()
ActiveSheet.Unprotect Selection.EntireRow.Insert Selection.EntireRow.Insert Sheets("基本データ").Select Range("F2:Q3").Select Selection.Copy Sheets("Sheet1").Select ActiveSheet.Paste Application.CutCopyMode = False ActiveCell.Offset(0, 0).Select ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
このようなこてこての式で挿入をしています この挿入をしないときには、綺麗に上記マクロで実施するのですが 挿入を1回(2行)でもしてしまうと Border Line Styleプロパティを設定できませんと表示されてしまいます コピーは隣のシートからしてきてるのですが、これって関係してるんですか? (aki)
=AND(B2<>B4,MOD(ROW(B2),2)=1,ISNUMBER(B2)=FALSE) あいにく変化は見られませんでした
条件付設定では太線は引けませんので (条件が3以下なら) 条件付書式で設定できますよ。(逆の発想)
>見出しが4行目なので「6」に設定し >こちらは完璧に動作しました 実際の表の構成をもっと正確に提示したほうがいいですよb どのような表があって、どのようなシートがあるのでしょう? こんな感じで提示してみませんか? Sheet1 [A] [B] [C] [1] [2] [3] [4] [5] [6] Sheet2 [A] [B] [C] [1] [2] [3] [4] [5] [6] >しかし行が足りないとき >このようなこてこての式で挿入をしています どのようなときに行が足りなくなるのでしょう? 直接は関係ない気がしますが。。。 情報は正確に小出しをせずに提示したほうが、解決が早いかもしれませんね^^ #本日は、これ以上レスできないかもしれません・・・ (キリキ)(〃⌒o⌒)b
マクロはもっともっと勉強しないとどうにもならないです この領域って自分には未知の世界です 条件付書式ですが おっしゃるとおり情報不足ですね 決して小出しにしてるのではなく 言葉が足りないのですね 本当に申し訳ありません =AND(MOD(ROW(),2)=0,$B5=$B7) こんな感じで思うようになりました たくさんのご教授ありがとうございました また、今後ともご指導宜しくお願いいたします 失礼します (aki)
ご自身で解決できたようで良かったですね^^
(キリキ)(〃⌒o⌒)b
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.