[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA:条件にあったセルを検出し、罫線を引く』(masabou5)
月毎の予定表で、B3セルからB33まで日付が入っています。 この日付が土曜日ならば、その土曜日の行(例えばB5が土曜日ならば、B5〜N5まで)に 下の罫線を引きたいのですが、どうすれば出来ますか? お教え下さい。よろしくお願いします。
条件付書式で出来ますが、VBAなのかな? (seiya)
すみません、VBAで行いたいのですが・・・、よろしくお願いします。(masabou5)
こんな塩梅でっか? (ROUGE) '---- Sub test() Dim C As Range For Each C In Sheets("Sheet1").Range("B3:B33") With C.Resize(, 13).Borders(xlEdgeBottom) If Weekday(C.Value) = 7 Then .LineStyle = xlContinuous .Weight = xlThin Else .LineStyle = xlNone End If End With Next End Sub
作ってみたら,回答済みでしたが (夕焼)
Sub test()
For i = 3 To 33
answer = Application.WorksheetFunction.Weekday(Cells(i, 3)) If answer = 7 Then Cells(i, 3).Borders(xlEdgeBottom).LineStyle = xlContinuous
End If
Next
End Sub
↑どこにもC列を処理したいとは書かれていませんよ。 さらに、線を引きたいのはN列までです。 (川野鮎太郎)
ROUGEさん、夕焼けさん、川野鮎太郎さん、ありがとうございました。 ROUGEさんのものはそのまま動きました。 夕焼けさんのものは、下記のように修正してOKとなりました。 Cells(i, 2)) If answer = 7 Then Range(Cells(i, 2), Cells(i, 14))・・・ 早々のご回答ありがとうございました。(masabou5)
B列の日付を変更してから再度マクロを実行してみて、比較してみて下さい。 (ROUGE)
>↑どこにもC列を処理したいとは書かれていませんよ。 > さらに、線を引きたいのはN列までです。
ご指摘のとおりですね。よく読まず,勘違いをしていました。 (masabou5)さんの修正ありがとうございます。(夕焼)
夕焼けさん、ROUGEさん、ご丁寧に教えていただき、ありがとうございました。(masabou5)
別にσ(^-^;)は教えた訳ではなかったのですが、、、 夕焼さんのコードだと、罫線を引きっぱなしなので、値が変化した後に再度マクロを実行すると違いが分かることが言いたかっただけです。 (ROUGE)
>夕焼さんのコードだと、罫線を引きっぱなしなので、値が変化した後に >再度マクロを実行すると違いが分かることが言いたかっただけです。
そうですね。ただ,実行時にセルが土曜日の場合に罫線を付加するだけの機能です。 土曜でないところを,実行時に罫線を消すという作業が行いません。 消去は別途自分で行う必要があります。(ご指摘のように作れば,そのようになり ますが,言い訳のようですが,別の目的で,わざわざ罫線を引いてある日付がある かもしれないので,勝手に罫線を消去するのもどうなのでしょうか?。 本人が,何を希望しているかですね。)(夕焼)
私の用途としては、罫線を引きっぱなしでよかったのですが、 まあプログラムを作るときはいろいろなことを考えないといけないということですね。 ありがとうございました。(masabou5)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.