Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13 / 13645 ツリー ←次へ | 前へ→

【82334】VBAで背景色を変えたい ロケットマン 24/8/5(月) 14:48 質問[未読]
【82335】Re:VBAで背景色を変えたい マナ 24/8/5(月) 15:18 発言[未読]
【82336】Re:VBAで背景色を変えたい ロケットマン 24/8/5(月) 16:30 質問[未読]
【82337】Re:VBAで背景色を変えたい マナ 24/8/5(月) 16:58 発言[未読]
【82338】Re:VBAで背景色を変えたい ロケットマン 24/8/5(月) 17:12 質問[未読]
【82339】Re:VBAで背景色を変えたい マナ 24/8/5(月) 19:37 発言[未読]
【82340】Re:VBAで背景色を変えたい ロケットマン 24/8/6(火) 9:50 お礼[未読]

【82334】VBAで背景色を変えたい
質問  ロケットマン E-MAIL  - 24/8/5(月) 14:48 -

引用なし
パスワード
   Ctrl + Shift + Wでエクセルの背景色を変えたいと思っています。
以下の内容で1つのセルであれば色を変えることができたのですが、
複数セルを選択している場合に色がかわりません。
お分かりのなる方お教えいただけますと幸いです。


Dim changeCount As Integer

Private Sub Workbook_Open()
  changeCount = 0
  Application.OnKey "^+W", "ChangeCellColor"
End Sub

Sub ChangeCellColor()
  changeCount = changeCount + 1
  
  Select Case changeCount
    Case 1
      ' 選択されたすべてのセルに黄色を設定
      ActiveCell.Interior.Color = RGB(255, 255, 0) ' 黄色
      End With
    Case 2
      ' 選択されたすべてのセルにオレンジを設定
      ActiveCell.Interior.Color = RGB(255, 165, 0) ' オレンジ
      End With
    Case 3
      ' 選択されたすべてのセルに濃い黄色を設定
      ActiveCell.Interior.Color = RGB(255, 204, 0) ' 濃い黄色
      End With
      changeCount = 0 ' カウントをリセット
  End Select
End Sub

【82335】Re:VBAで背景色を変えたい
発言  マナ  - 24/8/5(月) 15:18 -

引用なし
パスワード
   ▼ロケットマン さん:

1)↓を1行目に追加。セルを選択した状態でのみ実行
If TypeName(Selection) <> "Range" Then Exit Sub
  
   
2)ActiveVell をSelectionに変更
>ActiveCell.Interior.Color
   ↓
Selection.Interior.Color

【82336】Re:VBAで背景色を変えたい
質問  ロケットマン E-MAIL  - 24/8/5(月) 16:30 -

引用なし
パスワード
   お教えいただきありがとうございます。
私の知識不足で申し訳ないのですが、
1)の追加はどの部分に差し込めばよいでしょうか??

▼マナ さん:
>▼ロケットマン さん:
>
>1)↓を1行目に追加。セルを選択した状態でのみ実行
>If TypeName(Selection) <> "Range" Then Exit Sub
>  
>   
>2)ActiveVell をSelectionに変更
>>ActiveCell.Interior.Color
>   ↓
> Selection.Interior.Color

【82337】Re:VBAで背景色を変えたい
発言  マナ  - 24/8/5(月) 16:58 -

引用なし
パスワード
   ▼ロケットマン さん:

Sub ChangeCellColor()
  If TypeName(Selection) <> "Range" Then Exit Sub
  changeCount = changeCount + 1

選択しているものがセル以外
(図形とか)ならば
何もしないで終了する

【82338】Re:VBAで背景色を変えたい
質問  ロケットマン E-MAIL  - 24/8/5(月) 17:12 -

引用なし
パスワード
   ▼マナ さん:
再度お教えいただきありがとうございます。
上記以外にも色を設定していたのですが、
それ以外はうまくいき、1つ目の黄色のみ1つのセルしか色がかわりませんでした。
(cellcolor2と3はうまくいきました。)
結構探したんですが、どこが間違っているかわからずです。。。。
お力添えいただけますと幸いです。


Dim changeCount As Integer
Dim changeCount2 As Integer
Dim changeCount3 As Integer

Private Sub Workbook_Open()
  changeCount = 0
  Application.OnKey "^+W", "ChangeCellColor"
End Sub

Sub ChangeCellColor()
  changeCount = changeCount + 1
  
  Select Case changeCount
    Case 1
      Selection.Interior.Color = RGB(255, 255, 0) ' 黄色
    Case 2
      Selection.Interior.Color = RGB(255, 165, 0) ' オレンジ
    Case 3
      Selection.Interior.Color = RGB(255, 204, 0) ' 濃い黄色
      changeCount = 0 ' カウントをリセット
  End Select
End Sub

Private Sub Workbook2_Open()
  changeCount2 = 0
  Application.OnKey "^+E", "ChangeCellColor2"
End Sub

Sub ChangeCellColor2()
  changeCount2 = changeCount2 + 1
  
  Select Case changeCount2
    Case 1
      Selection.Interior.Color = RGB(204, 0, 255) ' 紫
    Case 2
      Selection.Interior.Color = RGB(202, 237, 251) ' 水色
    Case 3
      Selection.Interior.Color = RGB(0, 0, 255) ' 青
      changeCount2 = 0 ' カウントをリセット
  End Select
End Sub

Private Sub Workbook3_Open()
  changeCount3 = 0
  Application.OnKey "^+C", "ChangeCellColor3"
End Sub

Sub ChangeCellColor3()
  changeCount3 = changeCount3 + 1
  
  Select Case changeCount3
    Case 1
      Selection.Interior.Color = RGB(255, 255, 255) ' 白色
      changeCount3 = 0 ' カウントをリセット
  End Select
End Sub

【82339】Re:VBAで背景色を変えたい
発言  マナ  - 24/8/5(月) 19:37 -

引用なし
パスワード
   ▼ロケットマン さん:

こんな感じでしょうか
>
'ThisWorkbookモジュール
Option Explicit

Private Sub Workbook_Open()
  Application.OnKey "^+W", "ChangeCellColor"
  Application.OnKey "^+E", "ChangeCellColor2"
  Application.OnKey "^+C", "ChangeCellColor3"
End Sub

'標準モジュール
Option Explicit

Sub ChangeCellColor()
  Static changeCount As Integer

  If TypeName(Selection) <> "Range" Then Exit Sub
  changeCount = changeCount + 1

  Select Case changeCount
    Case 1
      Selection.Interior.Color = RGB(255, 255, 0) ' 黄色
    Case 2
      Selection.Interior.Color = RGB(255, 165, 0) ' オレンジ
    Case 3
      Selection.Interior.Color = RGB(255, 204, 0) ' 濃い黄色
      changeCount = 0 ' カウントをリセット
  End Select
End Sub


Sub ChangeCellColor2()
  Static changeCount As Integer

  If TypeName(Selection) <> "Range" Then Exit Sub
  changeCount = changeCount + 1
  
  Select Case changeCount
    Case 1
      Selection.Interior.Color = RGB(204, 0, 255) ' 紫
    Case 2
      Selection.Interior.Color = RGB(202, 237, 251) ' 水色
    Case 3
      Selection.Interior.Color = RGB(0, 0, 255) ' 青
      changeCount = 0 ' カウントをリセット
  End Select
End Sub


Sub ChangeCellColor3()
  If TypeName(Selection) <> "Range" Then Exit Sub
  Selection.Interior.ColorIndex = xlColorIndexNone
End Sub

【82340】Re:VBAで背景色を変えたい
お礼  ロケットマン E-MAIL  - 24/8/6(火) 9:50 -

引用なし
パスワード
   無事動きました。
何度もお教えいただきありがとうございました。

▼マナ さん:

13 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free