[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAで斜線を引きたい』(cocoro)
条件sheet1 C16に1が入った時、Sheet4 X6:X26に斜線を引くにはどうすれば宜しいでしょうか?教授ください
< 使用 Excel:Excel2010、使用 OS:Windows10 >
X6:X26のそれぞれに罫線の斜線を引きたい、ということだろうか? それなら条件付き書式でいけると思います。
それともX6:X26に横断的な斜線を引きたい、ということだろうか? (カリーニン) 2016/07/10(日) 19:31
X6:X26は通常セルで、そのセル領域に 斜めの線を挿入するのでしょうか? それとも X6:X26 は結合セルで、その結合セルの中に斜めの罫線を引くのでしょうか?
いずれであっても、この操作は、マクロ記録することで基本的なコードが入手できますね。
次に、C16 が 1 なら 線を引く、これは、Sheet1のシートモジュールでのChangeイベントが使えますが C16 が 1ではなかったら 線を消す? それとも、一度引いた線は 引きっぱなし?
To カリーニンさん
処理可能であれば条件付書式がベストだと思いますが、斜め線はサポートされていないと思います。
(β) 2016/07/10(日) 19:36
こんばんわ。
βさんのコメントにあるように、条件付き書式は斜め罫線はサポートされてません。
罫線で斜めに引くなら、マクロ記録で可能です。
(sy) 2016/07/10(日) 19:46
> 処理可能であれば条件付書式がベストだと思いますが、斜め線はサポートされていないと思います。
そうでした。cocoroさん、すみません。条件付き書式ではできませんでした。 (カリーニン) 2016/07/10(日) 19:46
マクロでX6〜X26を選択して罫線を引くと以下のようなコードができると思います。
Sub Macro1() ' ' Macro1 Macro '
' Range("X6:X26").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone With Selection.Borders(xlDiagonalUp) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With Selection.Borders(xlEdgeLeft).LineStyle = xlNone Selection.Borders(xlEdgeTop).LineStyle = xlNone Selection.Borders(xlEdgeBottom).LineStyle = xlNone Selection.Borders(xlEdgeRight).LineStyle = xlNone Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone End Sub
ちょっと分かりにくいですけど、上記のうち必要なのは以下になります。 .Borders(xlDiagonalUp) /の線の時はこれ .Borders(xlDiagonalDown) \の線の時はこれ
必要な方の右側に、 .LineStyle = xlContinuous を付ければ、罫線が引かれます。
C16が1かどうかは、IF文で判定できます。
このヒントで出来ますか?
(sy) 2016/07/10(日) 20:03
ちょっと変化球(?)ですけど。
Sheet4の斜線を引きたいところに、あらかじめ斜線を引いておきます。 で、その線の名前をわかりやすいものに変えておきます。たとえば "MyLine"
コードは
With Sheets("Sheet4").Shapes("MyLine") If Sheets("Sheet1").Range("C6").Value = 1 Then .Visible = True Else .Visible = False End If End With
とか。
(β) 2016/07/11(月) 02:12
おはようございます。
仕事行くので罫線でのコードも書いておきます。 βさんのShapesのコードと基本同じです。 扱ってるのが図形か罫線かだけです。
\線の時は、Borders(xlDiagonalDown)に書き換えます。
Sub test()
With Sheets("Sheet4").Range("X6:X26").Borders(xlDiagonalUp) If Sheets("Sheet1").Range("C16").Value = 1 Then .LineStyle = xlContinuous Else .LineStyle = xlNone End If End With
End Sub
(sy) 2016/07/11(月) 05:16
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.