- ベストアンサー
Excelマクロで線の色を指定する方法
- Excelマクロで線の色を指定する方法について困っています。Vlookup関数を使用して列Bの色を指定する設定にしていますが、赤色の設定方法が分かりません。マクロの初心者なので、他に必要な情報も分かりません。具体的な設定方法など、教えていただけると助かります。
- Excelマクロで線の色を設定したいと思っていますが、上手くいかず困っています。マクロを使用してシート2に線を追加し、その線の色をシート1のセルF2の色と同じにしたいです。具体的には、Vlookup関数を使用して列Bの値に対応するセルの色を指定したいです。マクロの初心者なので、他に必要な情報も分かりません。設定方法など、教えていただけると助かります。
- Excelマクロで線の色を設定する方法について困っています。Vlookup関数を使用して列Bのセルに対応する色を指定する設定にしていますが、赤色を指定する方法が分かりません。マクロを使用してシート2に線を追加し、その線の色をシート1のセルF2の背景色と同じにしたいです。マクロの初心者で、他に必要な情報も分かりません。具体的な設定方法など、教えていただけると嬉しいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 マクロを教わるのは、 翻訳や清書を頼むようなものですから、 <どんなことを書き表したいのか> <何をしたいのか> という、 自分しか知らないことを十分に伝えること をもっと意識するようにしてください。 画像を添付するにしても、 直接目にしたことのない者にとって、 どこまで読み取れるだろう、という想像力を持って、 見やすい画像にすることも大事ですね。 デジタルライフ > Windows > その他(Windows) > 『EXCEL マクロの指定の仕方』 http://okwave.jp/qa/q9181693.html あちら↑の説明も読んでみて、類推した内容でお応えします。 ひとまずは、 [実行マクロ単一セル用]の行指定を書き換えるなどして、 試してみて下さい。 試した結果が、お望みと違うようでしたら、 何が伝わっていなくて、何が誤解されているのか、 想像した上で説明を尽くすようにするか、 求める結果と実行結果の相違を明らかにするなど、 補足してみて下さい。 [実行マクロ複数セル用forループ版]の方は、 応用的な使用例、ということになります。 設問への理解が至っていませんから、 こちらからは、特に説明を加えません。 まず、そちらで確認してみた上で、 解らない部分についてご質問あれば、またお応えします。 ' ' // Sub 実行マクロ単一セル用() LetLineColor 行:=2 End Sub ' ' // Sub 実行マクロ複数セル用forループ版() Dim i As Long For i = 2 To Sheets("Sheet1").Cells(Rows.Count, "D").End(xlUp).Row LetLineColor 行:=i Next i End Sub ' ' // Sub LetLineColor(行 As Long) Dim wks1 As Worksheet Dim rngStart As Range Dim rngEnd As Range Dim TargetValueS, TargetValueE, nColor As Long Dim BX As Single, BY As Single, EX As Single, EY As Single With Sheets("Sheet1") TargetValueS = .Cells(行, "D") TargetValueE = .Cells(行, "E") If TargetValueS = "" Or TargetValueE = "" Then Debug.Print 行; "行", "EmptyParam!!": Exit Sub If IsError(.Cells(行, "F")) Then Debug.Print 行; "行", "Color'sError": Exit Sub nColor = -1 Select Case UCase(.Cells(行, "F")) ' 大文字に直してから判別 Case "RED": nColor = RGB(255, 0, 0) Case "GREEN": nColor = RGB(0, 255, 0) Case "BLUE": nColor = RGB(0, 0, 255) ' 以下、適宜追加可 End Select If nColor = -1 Then Debug.Print 行; "行", "Color??": Exit Sub End With With Sheets("Sheet2") Set rngStart = .Cells.Find( _ What:=TargetValueS, _ LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, MatchByte:=False) If rngStart Is Nothing Then Debug.Print 行; "行", "NotFound!! ""Start"":" & TargetValueS: Exit Sub Set rngEnd = .Cells.Find( _ What:=TargetValueE, _ LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, MatchByte:=False) If rngEnd Is Nothing Then Debug.Print "NotFound!! ""End"":" & TargetValueE: Exit Sub BX = rngStart.Left + 10 BY = rngStart.Top EX = rngEnd.Left + rngEnd.Width EY = rngEnd.Top + 10 With .Shapes.AddLine(BX, BY, EX, EY).Line .ForeColor.RGB = nColor .Weight = 3 .EndArrowheadStyle = msoArrowheadTriangle End With End With End Sub ' ' //
その他の回答 (1)
- watabe007
- ベストアンサー率62% (476/760)
>.ForeColor.RGB = Worksheets("sheet1").Range("F2").Interior.ColorIndex >赤色を指定したいのですがBにどういうコードを入れれば良いですか? .ForeColor.RGB = RGB(255, 0, 0)
補足
色は直接マクロ内で指定するのではなくてB2セルに 入力した値をもって色指定としたいのです。 というのも、繰り返し処理を行うけど、色は変えるというのが 目的なので。 言葉が足りなくて申し訳ないですが、よろしくお願いします
お礼
色々ご丁寧にありがとうございます。 上手くいかなかったのですが、この質問で続けても伝えられないと 思いますので、改めて問題が伝わる形で質問させていただきます。 ご指摘ありがとうございました