• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAについて)

エクセルVBAで列の背景色を切り替える方法

このQ&Aのポイント
  • エクセルVBAを使用して、選択したセルの列の背景色を切り替える方法について説明します。
  • しかし、結合されたセルでは背景色の切り替えがうまく行えないため、解決方法についても考えます。
  • また、行の範囲も指定して背景色を切り替える方法についても説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ebis
  • ベストアンサー率27% (17/61)
回答No.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 に変えます。

ein-zwei
質問者

お礼

うまくいきました! 他の回答をくださった方も、ありがとうございました。

その他の回答 (1)

  • myRange
  • ベストアンサー率71% (339/472)
回答No.1

先日から色々やってますねぇ。。 結合セルの処理が間違っています。 ●表の範囲を、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 '------------------------------------------------- それから結合セルが絡む質問をするときはその辺りを細かく提示した方がいいでしょう。 結合セルの処理はそれなりの処理をしないといけないので。 以上です。  

関連するQ&A

専門家に質問してみよう