Excel VBA質問箱 IV

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

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


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

【67046】条件付書式を使って、A列の言葉によってその行の色を変えたい きりこ 10/10/28(木) 22:17 質問[未読]
【67047】補足です きりこ 10/10/28(木) 22:49 発言[未読]
【67048】Re:補足です kanabun 10/10/28(木) 23:05 発言[未読]
【67050】Re:補足です きりこ 10/10/28(木) 23:12 発言[未読]
【67049】Re:補足です 山猿 10/10/28(木) 23:06 発言[未読]
【67051】Re:補足です きりこ 10/10/28(木) 23:25 質問[未読]
【67052】Re:補足です 山猿 10/10/28(木) 23:44 発言[未読]
【67053】Re:補足です keisuke 10/10/29(金) 6:26 発言[未読]
【67054】Re:補足です keisuke 10/10/29(金) 6:59 回答[未読]
【67056】Re:条件付書式を使って、A列の言葉によって... きりこ 10/10/29(金) 20:37 お礼[未読]

【67046】条件付書式を使って、A列の言葉によって...
質問  きりこ  - 10/10/28(木) 22:17 -

引用なし
パスワード
   条件付書式を使ってA2からA300位まであるセルに6種類の言葉を入力すると、
その種類によって、その行のAからCN列までの色が変わるようにしたいです。
例えばA5に『123BA』と入力したらA5からCN5まで色が変わるという感じです。

全部で6種類の色分けをしたいです。

オートフィルは使用しない方法で、VBAでやりたいのですが。

種類の入力してあるセルだけを変更するのは分かるのですが、
行範囲の色を変える方法が分からず困っております。
普通では3つまで出来ないので・・・。

是非お教えください。

【67047】補足です
発言  きりこ  - 10/10/28(木) 22:49 -

引用なし
パスワード
   ちなみに数字だけならマクロ登録で行けましたが、
入力キーワードは『12ABC』等のため、マクロ登録で上手くいけませんでした。

【67048】Re:補足です
発言  kanabun  - 10/10/28(木) 23:05 -

引用なし
パスワード
   ▼きりこ さん:

>ちなみに数字だけならマクロ登録で行けました

どんなマクロ記録が得られましたか?

【67049】Re:補足です
発言  山猿  - 10/10/28(木) 23:06 -

引用なし
パスワード
   ▼きりこ さん:
>ちなみに数字だけならマクロ登録で行けましたが、
>入力キーワードは『12ABC』等のため、マクロ登録で上手くいけませんでした。
どのようなマクロで行けましたか?

セルの値が変ったときに何か一仕事しようというのは、
Changeイベントというのを使います。
VBA changeイベント などで検索すれば、色々記事がありますよ。

【67050】Re:補足です
発言  きりこ  - 10/10/28(木) 23:12 -

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

>>ちなみに数字だけならマクロ登録で行けました
>
>どんなマクロ記録が得られましたか?

Sub Macro1()
  Range("A1").Select
  Selection.FormatConditions.Delete
  Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$B1=2"
  Selection.FormatConditions(1).Interior.ColorIndex = 36
End Sub

上のようなものになりました。
>"=$B1=2"
の所に"=$B1=12ABC"と入れてみましたが無理でした。

【67051】Re:補足です
質問  きりこ  - 10/10/28(木) 23:25 -

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

>セルの値が変ったときに何か一仕事しようというのは、
>Changeイベントというのを使います。
>VBA changeイベント などで検索すれば、色々記事がありますよ。

ありがとうございます。
調べてみたのですが良く分かりませんでした。
範囲が指定できるというのは分かったのですが、
種類ごとでその行に色をつけたいのでLOOPさせるといいのでしょうか。

【67052】Re:補足です
発言  山猿  - 10/10/28(木) 23:44 -

引用なし
パスワード
   ▼きりこ さん:
> その行のAからCN列までの色が変わる
のマクロを作らないと。
例えば、A5:CN5に色をつけるマクロ。

それができたら、changeマクロで・・・。
あ、やっぱり
h t t p://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html
あたりを勉強されたほうがいいでしょう。

【67053】Re:補足です
発言  keisuke  - 10/10/29(金) 6:26 -

引用なし
パスワード
   >種類ごとでその行に色をつけたいのでLOOPさせるといいのでしょうか
色を変更するのは

Range("A35").Interior.ColorIndex = 4
範囲は
Range("A35:CZ35").Interior.ColorIndex = 4
とか
GYO=行数
Range("A”& GYO & ":CZ" & GYO).Interior.ColorIndex = 4

A列5行目から30個
Cells(1, 1).Resize(1, 30).Interior.ColorIndex = 4
GYO=行数
Cells(GYO, 1).Resize(1, 30).Interior.ColorIndex = 4

なんで、後はSELECTかIF~THENで判定させれば良いかと思いますが。

【67054】Re:補足です
回答  keisuke  - 10/10/29(金) 6:59 -

引用なし
パスワード
   時間がありましたので、作ってみました

Sub 色分け()

Dim GYO As Integer, X As Integer

'この部分はセルの値を並列に入れたほうが簡単
Dim A5(6) As String
A5(1) = "123ACB"
A5(2) = "234ACB"
A5(3) = "345ACB"
A5(4) = "456ACB"
A5(5) = "789ACB"
A5(6) = "13ACB"

For GYO = 2 To 15
 For X = 1 To 6
  If Cells(GYO, 5) = A5(X) Then'A5(1,X)
   Cells(GYO, 1).Resize(1, 30).Interior.ColorIndex = X'A5(2,X)
   Exit For
  End If
 Next X
Next GYO

End Sub

'別の方法 セルの値を並列に入れた(判定させる値を変更には便利)
A1〜F1に"123ACB"などA2〜F2に色番号を入れます。
Dim A5 As Variant
A5 = Cells(1, 1).Resize(2, 6).Value

For GYO = 2 To 15
 For X = 1 To 6
  If Cells(GYO, 5) = A5(1,X) Then
   Cells(GYO, 1).Resize(1, 30).Interior.ColorIndex = A5(2,X)
   Exit For
  End If
 Next X
Next GYO

End Sub

【67056】Re:条件付書式を使って、A列の言葉によっ...
お礼  きりこ  - 10/10/29(金) 20:37 -

引用なし
パスワード
   皆さんのを参考にさせていただき、Resizeとcaseで何とかできました。
皆さんありがとうございました。

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