Excel VBA質問箱 IV

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

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


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

【71981】セルに背景色をつける場合 moco 12/5/11(金) 15:05 質問[未読]
【71982】Re:セルに背景色をつける場合 毛虫(通過中) 12/5/11(金) 15:11 発言[未読]
【71984】Re:セルに背景色をつける場合 moco 12/5/11(金) 16:52 質問[未読]
【71983】Re:セルに背景色をつける場合 Abebobo 12/5/11(金) 16:09 発言[未読]
【71985】Re:セルに背景色をつける場合 moco 12/5/11(金) 16:54 質問[未読]
【71986】Re:セルに背景色をつける場合 毛虫(通過中) 12/5/11(金) 17:38 発言[未読]
【71989】Re:セルに背景色をつける場合 moco 12/5/12(土) 10:18 お礼[未読]
【71987】Re:セルに背景色をつける場合 ドカ 12/5/11(金) 17:49 回答[未読]
【71990】Re:セルに背景色をつける場合 moco 12/5/12(土) 10:19 お礼[未読]
【71988】Re:セルに背景色をつける場合 hint 12/5/11(金) 21:03 発言[未読]
【71991】Re:セルに背景色をつける場合 moco 12/5/12(土) 10:20 お礼[未読]

【71981】セルに背景色をつける場合
質問  moco  - 12/5/11(金) 15:05 -

引用なし
パスワード
   エクセルのセルに背景色をつける際どのようにしたらよいのでしょうか?

例えばA2のセルに「A」を入力したら自動的にA2とB2のセルが赤色、

A3のセルに「B」を入力したら自動的にA3とB3のセルが黄色、という感じです。条件付書式設定だと2003の場合3つしか設定できませんでした。
10色利用したいので条件付書式設定が利用できません。

以下方法で試してみたのですが、コンパイルエラー End Subが必要ですと表示され
マクロが実行できません。


Sub Macro1()
'
' Macro1 Macro
'
Private Sub Wokrsheet_Change(ByVal Target As Range)

Dim Cell_Col As Integer
Dim rng As Range

Select Case Target.Value
Case "A"
Cell_Coll = 3 '赤

Case "B"
Cell_Coll = 6 '黄

Case "C"
Cell_Coll = 4 '緑

Case "D"
Cell_Coll = 5 '青

Case Else
Cell_Coll = xlNone

End Select

Set rng = Range(Target, Target.Offset(0, 1)) '自分と右となりのセル
rng.Interior.ColorIndex = Cell_Col '背景色を指定

'
End Sub


End Subを入れているのにエラーが出てしまい、何度も試したのですが
何がエラーなのかわかりません。
アドバイスお願いします。

【71982】Re:セルに背景色をつける場合
発言  毛虫(通過中)  - 12/5/11(金) 15:11 -

引用なし
パスワード
   ▼moco さん:
>Sub Macro1()
 (中略)
>Private Sub Wokrsheet_Change(ByVal Target As Range)
 (中略)

と来ているのにEnd Subが1つしか入力されていないことが原因かと思われます。
頭のSub Macro1()を消してみてください。

【71983】Re:セルに背景色をつける場合
発言  Abebobo  - 12/5/11(金) 16:09 -

引用なし
パスワード
   >
>Set rng = Range(Target, Target.Offset(0, 1)) '自分と右となりのセル

Set rng = Target.Resize(, 2)

こんな書き方があります
ちょっと気になったので、

【71984】Re:セルに背景色をつける場合
質問  moco  - 12/5/11(金) 16:52 -

引用なし
パスワード
   ▼毛虫(通過中) さん:

ありがとうございます。
「頭のSub Macro1()を消してみてください」
とのことなので消してみたのですが、消してしまうとマクロが実行できなくなってしまいます。
マクロの入力方法自体が間違えているのでしょうか?

【71985】Re:セルに背景色をつける場合
質問  moco  - 12/5/11(金) 16:54 -

引用なし
パスワード
   ▼Abebobo さん:
ありがとうございます。

試してみたのですが、やはり同じエラーメッセージでした。

【71986】Re:セルに背景色をつける場合
発言  毛虫(通過中)  - 12/5/11(金) 17:38 -

引用なし
パスワード
   ▼moco さん:

文字を入力してEnterを押すとカーソルが下に動くと言うことが前提ですが…
参考程度に…

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range
  Dim Cell_Coll As Integer
  
  Set rng = ActiveCell.Offset(-1)

  Select Case rng.Value
    Case Is = "A": Cell_Coll = 3 '赤
    Case Is = "B": Cell_Coll = 6 '黄
    Case Is = "C": Cell_Coll = 4 '緑
    Case Is = "D": Cell_Coll = 5 '青

    Case Else: Cell_Coll = xlNone
  End Select
  
  rng.Resize(1, 2).Interior.ColorIndex = Cell_Coll
End Sub

【71987】Re:セルに背景色をつける場合
回答  ドカ  - 12/5/11(金) 17:49 -

引用なし
パスワード
   ▼moco さん:

以下の修正で動きましたよ。

>Sub Macro1() ← これは削除

>Private Sub Wokrsheet_Change(ByVal Target As Range)

Private Sub Worksheet_Change(ByVal Target As Range)
Worksheetのスペル間違い


>rng.Interior.ColorIndex = Cell_Col '背景色を指定

Cell_Coll ←スペル間違い

【71988】Re:セルに背景色をつける場合
発言  hint  - 12/5/11(金) 21:03 -

引用なし
パスワード
   ▼moco さん:
>Private Sub Wokrsheet_Change(ByVal Target As Range)
これは、シートモジュールに書く、イベントプロシージャということは
理解してますか?
Wokrsheet → Worksheet とスペルミスを直せば動くはずです。

【71989】Re:セルに背景色をつける場合
お礼  moco  - 12/5/12(土) 10:18 -

引用なし
パスワード
   ▼毛虫(通過中) さん:
ありがとうございました。
無事解決致しました。

【71990】Re:セルに背景色をつける場合
お礼  moco  - 12/5/12(土) 10:19 -

引用なし
パスワード
   ▼ドカ さん:
ありがとうございます。
無事作成できました

【71991】Re:セルに背景色をつける場合
お礼  moco  - 12/5/12(土) 10:20 -

引用なし
パスワード
   ▼hint さん:
ありがとうございます
おっしゃるとおり、記入する場所を間違えていました
初歩的なミスで恥ずかしいです・・・。

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