• ベストアンサー

お世話になります。エクセルマクロにてセルの塗りつぶしについてご教授願い

お世話になります。エクセルマクロにてセルの塗りつぶしについてご教授願いします やりたい事は分刻みでのタイムチャ-トを作りたいのですが (1)セルA1からA50に数値が入っている (2)その数値を参照に別シ-トにその数値分、横軸に色をつけたい A1に10が入っていれば10セル分色をつける A2に5が入っていれば A1で塗りつぶした10セルの後に5セル分続けて塗りつぶす という具合です マクロの記録に少し手を加えるくらいの知識しか有りませんが 宜しくお願い致します

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

一例です。 test01・・・50色(カラーインデックス順)で色を付けます test02・・・赤→黒→赤の順に色を付けます。 sheet2のB3を基点にBI列で折り返します。 Sub test01()   Dim Ws1 As Worksheet   Dim Ws2 As Worksheet   Dim i As Integer   Dim j As Integer   Dim k As Integer      Set Ws1 = Worksheets("Sheet1")   Set Ws2 = Worksheets("Sheet2")      Ws2.Cells.Clear   k = 1   For i = 1 To 50     For j = 1 To Ws1.Cells(i, "A").Value       Ws2.Range("B3:BI65536").Cells(k).Interior.ColorIndex = i       k = k + 1     Next j   Next i   Set Ws1 = Nothing   Set Ws2 = Nothing End Sub '------------------------------------------------------------------------ Sub test02()   Dim Ws1 As Worksheet   Dim Ws2 As Worksheet   Dim i As Integer   Dim j As Integer   Dim k As Integer   Dim flg As Boolean      Set Ws1 = Worksheets("Sheet1")   Set Ws2 = Worksheets("Sheet2")      Ws2.Cells.Clear   k = 1   For i = 1 To 50     For j = 1 To Ws1.Cells(i, "A").Value       If flg Then         Ws2.Range("B3:BI65536").Cells(k).Interior.ColorIndex = 1       Else         Ws2.Range("B3:BI65536").Cells(k).Interior.ColorIndex = 3       End If       k = k + 1     Next j     flg = Not flg   Next i   Set Ws1 = Nothing   Set Ws2 = Nothing End Sub

kuku1121
質問者

お礼

お礼が遅くなり申し訳ありません 助かりました

その他の回答 (2)

回答No.3

#2です。 訂正です。 変数 i,j,k はLong型で宣言してください。   Dim i As Long   Dim j As Long   Dim k As Long

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

確認 ・A1~A50までの連続したセル範囲には必ず数値が入っているのか? (A1,A3,A4・・・など飛び飛びに数値が入ることはあるのか?) ・最大のA50まで数値が入力されている場合塗りつぶし色は50色必要とするのか? ・添付画像を見ると塗りつぶされていないセルもあるようですが、塗りつぶしの規則は提示条件以外にもあるのか? ・A列に入力された数値分の塗りつぶしの起点は別シートのどのセル? (添付画像では複数行にわたった塗りつぶしが行われていますが、どこかで折り返しされるのですか?)

kuku1121
質問者

補足

早速の回答有難う御座います (1)セルの範囲には必ず入っています 飛び飛びは無いです (2)50色は必要としません  (3)塗りつぶししていないセルと言うか その列は赤⇒黒⇒赤と言った具合にしたいです (4)起点のシ-トはSheet2のどの列でも構いません(画像にはSheet2は有りませんが<(_ _)>)  折り返しは分単位で行いないので60セル塗りつぶしたら次の行から行いたいです  画像で言えば 起点のセルはB3 終点のセルはBI3で折り返してB11からです かなりの説明不足で大変申し訳ありませんがどうぞ宜しくお願いします

関連するQ&A