[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件付書式で…』(HK)
条件式書式は通常3つまでしか条件を設定できないのですが、 それを6つにしたいのです。 でも、条件付書式の条件がセルに入力されている文字列を参照したい為、うまく出来ません。
Aが入力されている場合⇒背景を赤 Bが入力されている場合⇒背景を青 Cが入力されている場合⇒背景を緑 Dが入力されている場合⇒背景を黄 Eが入力されている場合⇒背景を水色 Fが入力されている場合⇒背景を橙
上の内容について、条件付書式にて対応させたいのです。 どうぞ、ご教授をお願いします。
条件付書式ではできません [[20050308152110]] 『条件付書式の条件は3つが限度?』(よよ) [[20050115131721]]『条件式書式を6つやりたいんですが・・・』(sirouto) (dack)
VBAを使用しないと無理のようですね。 過去ログを参照してがんばって見ます。 (HK)
過去ログ参照してコードを作成したのですが、セルに新しく文字を入力しないと、 セルの背景が変化しません。 セルの背景を変化させたいセルには数式が入力されていて、その数式から表示される 文字に対してセルの背景を変化させたいのです。 どうぞ、宜しくお願いします。
Private Sub Worksheet_Change(ByVal Target As Range) Dim colr As Integer Dim c As Variant If Target.Count > 1 Then Exit Sub If Target.Row <> 5 Then Exit Sub For Each c In Target Select Case c.Value Case "A" colr = 35 Case "B" colr = 37 Case "C" colr = 41 Case "D" colr = 39 Case "E" colr = 50 Case "F" colr = 40 Case Else colr = xlNone End Select c.Interior.ColorIndex = colr Next c End Sub (HK)
範囲は適当ですが、こんな感じですか?(ROUGE) '---- Private Sub Worksheet_Calculate() Dim c As Range, clr As Integer For Each c In [A1:A10] Select Case c.Text Case "A": clr = 35 Case "B": clr = 37 Case "C": clr = 41 Case "D": clr = 39 Case "E": clr = 50 Case "F": clr = 40 Case Else: clr = xlNone End Select c.Interior.ColorIndex = clr Next End Sub
ROUGEさん、ありがとうございます。完璧でした。 (HK)
解決後なのですが、すいません。 ↑のコードを使用するとツールバー内にある、『元に戻す』と『やり直し』の 矢印が使用できなくなってしまいました。なぜでしょうか? ↑のコードを消去すると、使用できます。 (HK)
それはおそらく 「マクロを実行すると『元に戻す』が使えない」 からだと思います。
(HANA)
>それはおそらく >「マクロを実行すると『元に戻す』が使えない」 >からだと思います。 これはマクロの性質上解決出来ない問題なのですね。 でしたら、コマンドボタンを使用した時に↑のコードを使用するというようには 出来るのでしょうか? (HK)
>でしたら、コマンドボタンを使用した時に↑のコードを使用するというようには >出来るのでしょうか? やればわかる。 (アカギ)
ツール>表示>コントロールツールボックス でコマンドボタンをシートへ配置。 シートモジュールのマクロを次のように書き換えます。 Private Sub test() Dim c As Range, clr As Integer For Each c In [A1:A10] Select Case c.Text Case "A": clr = 35 Case "B": clr = 37 Case "C": clr = 41 Case "D": clr = 39 Case "E": clr = 50 Case "F": clr = 40 Case Else: clr = xlNone End Select c.Interior.ColorIndex = clr Next End Sub
Private Sub CommandButton1_Click() Call test End Sub (みやほりん)(-_∂)b
みやほりんさん、ありがとうございます。 希望通りの事が出来ました。 (HK)
一度解決したレスなのですが、掘り起こしてしまってすいません。 このレス内容の関係で、再度ご教授してください。
Private Sub test() Dim c As Range, clr As Integer For Each c In [A1:A10] Select Case c.Text Case "A": clr = 35 Case "B": clr = 37 Case "C": clr = 41 Case "D": clr = 39 Case "E": clr = 50 Case "F": clr = 40 Case Else: clr = xlNone End Select c.Interior.ColorIndex = clr Next End Sub
Private Sub CommandButton1_Click() Call test End Sub
現在、↑のコードをシートモジュール内に貼り付けて、コマンドボタンを押した際に、動作するようにしているのですが、 今のままですと、コードを記入してある、シートにしか対応がしていません。 これを他のシートでも同様の動作をさせるようにはどうしたらよいでしょうか? testコードの名前を『test1,test2…』という具合に変えて、対応させたいシートモジュールに貼り付け、コマンドボタンのコードも↓の様に変更しました。
Private Sub CommandButton1_Click() Call test Call test1 Call test2 End Sub
ですが、「コンパイルエラー:Subまたは、Functionが定義されていません」とエラーが出てしまいます。 どうか、ご教授をお願いします。 (HK)
標準モジュールにコードをコピペして Private Sub test() を Sub test() にかえて、シート上に貼り付けたボタンからCallしてみたらいかがでしょうか? (SHIOJII)
SHIOJIIさん、レスありがとうございます。 SHIOJIIさんに教えてもらった通りにやった所、コマンドボタンが貼り付けてあるシートは対応出来るのですが、 今使用しているコードはシートの指定はしてなくて、セルの場所しか指定していない為、他のシートに対応させる事が出来ません。 どうすれば良いのでしょうか? (HK)
KHさん
ご提示の Call test Call test1 Call test2 で何をされたいのですか? (seiya)
条件付書式をやりたいのです。 今までは1Sheetのみ対応をさせていたのですが、それを複数Sheetに対応させたいのです。 条件付書式の内容はどのSheetも全て同じです。 (HK)
こんな感じ?
Sub test() Dim e As Variant, r As Range, clr As Byte For Each e In Array("Sheet1","Sheet2","Sheet3") '<- 必要に応じて追加・削除 With Sheets(e).Range("a1:a10") .Interior.ColorIndex = xlNone For Each r In .Cells Select Case r.Text Case "A" : clr = 35 Case "B" : clr = 37 Case "C" : clr = 41 Case "D" : clr = 39 Case "E" : clr = 50 Case "F" : clr = 40 End Select r.Interior.ColorIndex = clr Next End With Next End Sub (seiya)
seiyaさん、希望通りの事が出来ました。 ですが、もう少し教えて下さい。私の説明不足だったのですが、 今は、条件付書式を対応させるセルは、どのSheetでも同じセルにしか対応が出来ていませんが、 それをシート毎にセルを指定して対応させる事は出来るのでしょうか?
また、条件付書式に設定していない文字が入力されていても、 『Case "F" : clr = 40』 ↑の色がセルに塗られてしまいます。 (HK)
1) 可能です 2) 状況が良く理解できません。もう少し具体的に説明してください。 (seiya)
また、・・・・・の質問のほうだけ^^
Case "F" : clr = 40 Case Else: clr = xlNone 'ここ追加 End Select かな?(dack)
こんな感じで.... myListを編集してください
Sub test() Dim myList, r As Range, i As Integer, clr as Integer myList = Array(Array("Sheet1","A1:A10"),Array("Sheet2","B1:B10"),Array("Sheet3","C1:C10")) For i = 0 To UBound(myList) With Sheets(myList(i)(0)).Range(myList(i)(1)) .Interior.ColorIndex = xlNone clr = xlNone For Each r In .Cells Select Case r.Value Case "A" : clr = 35 Case "B" : clr = 37 Case "C" : clr = 41 Case "D" : clr = 39 Case "E" : clr = 50 Case "F" : clr = 40 End Select If clr <> xlNone Then r.Interior.ColorIndex = clr clr = xlNone Next End With Next End Sub (seiya)
seiya さ〜ん Select Case ? 抜けてますよ。
Select Case r でいいのかな。 (Matta)
Mattaさん、どうもです。 コード修正しました。 (seiya)
レス遅くなりました。 seiyaさん。本当にありがとうございます☆ 完璧でした(^_^) (HK)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.