プロが教えるわが家の防犯対策術!

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

マクロの記録に少し手を加えるくらいの知識しか有りませんが
宜しくお願い致します

「お世話になります。エクセルマクロにてセル」の質問画像

A 回答 (3件)

一例です。



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
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/09/07 10:09

#2です。



訂正です。

変数 i,j,k はLong型で宣言してください。

  Dim i As Long
  Dim j As Long
  Dim k As Long
    • good
    • 0

確認


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

この回答への補足

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

かなりの説明不足で大変申し訳ありませんがどうぞ宜しくお願いします

補足日時:2010/08/31 11:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!