- ベストアンサー
エクセルVBAで列の背景色を切り替える方法
- エクセルVBAを使用して、選択したセルの列の背景色を切り替える方法について説明します。
- しかし、結合されたセルでは背景色の切り替えがうまく行えないため、解決方法についても考えます。
- また、行の範囲も指定して背景色を切り替える方法についても説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
単純に Dim i As Long i = Target.Column Range(Columns(i), Columns(i + 1)).Select Selection.Interior.ColorIndex = 6 Target.Select ではどうでしょう? 複数行の場合は3行目を Range(Rows(i), Rows(i + 1)).Select に変えます。
その他の回答 (1)
- myRange
- ベストアンサー率71% (339/472)
先日から色々やってますねぇ。。 結合セルの処理が間違っています。 ●表の範囲を、B1~P25、と仮定して以下の処理 (1)表の範囲内の任意のセルをクリックすると、 列全体を塗りつぶさないで、表の範囲内の列を塗りつぶす (2)表の範囲外のセルをクリックしたら無視する。 '------------------------------------------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim R As Range Dim myRange As Range '■重要■表の範囲を指定 Set myRange = Range("B1:P25") '■表範囲以外をクリックしたら無視 If Intersect(Target, myRange) Is Nothing Then Exit Sub '■表範囲内の色をクリアー myRange.Interior.ColorIndex = xlNone '■表範囲内の該当列色付け開始 For Each R In myRange.Columns(1).Cells With Intersect(myRange, Cells(R.Row, Target.Column).MergeArea.EntireColumn) .Interior.ColorIndex = 6 End With Next R End Sub '------------------------------------------------- それから結合セルが絡む質問をするときはその辺りを細かく提示した方がいいでしょう。 結合セルの処理はそれなりの処理をしないといけないので。 以上です。
お礼
うまくいきました! 他の回答をくださった方も、ありがとうございました。