• ベストアンサー

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

お世話になります。エクセルマクロにてセルの塗りつぶしについてご教授願いします やりたい事は分刻みでのタイムチャ-トを作りたいのですが (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

  • Excelのマクロでセルの値をコピーしたいのですが

     他の方も質問されているのかもしれませんが、見つけられなかったので教えてください。 Excelのセルに A1001~A2000まで数値が入っているとします それをA1~E1までにA1001~A1005までの数値を A2~E2までにA1006~A1010までの数値をコピー(参照)し、これを繰り返してA2000の数値まで対応したいのですが、マクロでコピーを組むにはどうしたらよいのでしょうか? ちなみに、OSはWin2000 ExcelはExcel2000です。  全く初歩的な質問ですみません。

  • エクセルのマクロ

    エクセル2002でマクロを記録しました。 セルD5を選択した状態で、マクロの記録を始めました。(相対参照ボタンをクリックしています) D5のセルの色を黒にして、セルD6を選択して色を白にしました。ここで記録を終了しました。 VisualBasicEditorで見ると以下のような記述がありました。 そこで教えてください。 1)どの部分が相対参照をしているという意味の記述でしょうか? 2)どの部分がD6を選択したという記述でしょうか? 3)「Range("A1").Select」はどういう意味ですか?A1のセルはクリックしていないのですが・・・。 教えてください。 記述は以下です。 With Selection.Interior .ColorIndex = 1 .Pattern = xlSolid End With ActiveCell.Offset(1, 0).Range("A1").Select With Selection.Interior .ColorIndex = 2 .Pattern = xlSolid End With End Sub

  • エクセル2000:決まったセルに数値が入力されたらマクロを起動させたい

    エクセル2000:決まったセルに数値が入力されたらマクロを起動させたい。 たとえばセルA1に、1以上の数値が入力されたときに、セルA2に今日の日付を入力させる マクロの記述はどうすれば宜しいでしょうか? 以下の記述で、セルA2に日付は入力させられるのですが、 セルA1に1以上の数値が入力された場合に起動させる方法が分かりません。 Range("A2").Select SendKeys "^(;){ENTER}" ご教授の程、宜しくお願い申し上げます。

  • Excelのマクロでセル内の数値によってセルの色分け

    はじめまして。マクロ初心者です。 よろしくお願いいたします。 エクセルに入力されている数値によってセルを色分けしたいのです。 数値はこんなふうに入力されています↓ A0*22*33*44              B1*22*33*44 A2*12*55*66               D1*77*22*88              C1*12*55*66               E2*99*12*11  こういったものが全部で1500行ほどです。 *は空白を表しています。 この中の、空白を入れて左から4つめの数字が2、5つめが2のときは赤、 左から4つめの数字が1、5つめの数字が2のときは青、 それ以外のときはそのまま… といった具合に全部で5種類5色に色分けしたいのですが、どうにも能力が足りなくて困っています。 最初、自分なりにネット等参考にしながら「22という数値を含むセルは赤」といったように作ったのですが、 どうしても左から4文字目5文字目に限定しないと余計なセルにも色が付いてしまうのです。 もう2日も悩んでいますが、どうにも手も足も出ません。 ご指導いただけると本当に助かります。 どうぞよろしくお願いいたします。

  • エクセルのことで質問いたします。既にセルに入力された数式に、マクロでIF関数を一発追加することは可能でしょうか?

    エクセルで質問です。どなたかご教授ください…。 既にセルに入力された数式に、マクロでIF関数を一発追加することは可能でしょうか? =B6*10 という数式が入力されているセルを、ボタンひとつで =IF(B6=0,”” ,B6*10) という具合にしたいのです。 相対参照でどのセルにでも効くマクロ、もしあれば教えてください。

  • Excelのマクロでセル単位でロックをかける方法に関する質問です。

    Excelのマクロでセル単位でロックをかける方法に関する質問です。 例えばa1からd10の範囲のセルに対して a列の各セルは、IF関数で数値か""を返しているとします。 a列のセルが数値であれば、同じ行の各セルをロックし、""であれば、後からそのセルに手入力できるようにロックを外したいと思います。(もちろんIF関数は書き換えられますが、それでOKです) 例えば、a1が数値なら、a1,b1,c1,d1の各セルはロックに、     a1が""なら、a1,b1,c1,d1の各セルはアンロックに したいわけです。 手作業だと行数が多い場合大変なので、マクロで自動的に行いたいと思いますが、マクロ初心者のため、どうすればよいのかわかりません。 どなたかご教授願えればありがたいです。 よろしくお願いします。

  • excelのマクロ

    現在、EXCELで届出書を作っています。 自動マクロでマクロも一部組んでいますが 「参照元のファイルのシートのセルが”男”だったら 別のシートの指定のセルに丸を打つ」という内容をマクロ化したいのですがわかりません。 ご教授いただきたくよろしくお願いいたします。

  • エクセルのマクロ

    エクセルのマクロでわからないことがあり質問なんですが A1セルの数値がリアルタイムに更新されていて このA1セルの数値が更新されるたびに B1とB2にA1セルの最新の値を交互にコピーしていくマクロを 作りたいんですがうまくいきません。 例としては A1に1と表示→B1に1と表示 A1に7と表示→B2に7と表示 A1に18と表示→B1に18と表示 これをA1セルが更新され続ける限り繰り返しすマクロです。 どなたか教えていただけるとありがたいです。

  • エクセルでの書式の参照

    エクセルで複数のシート70枚(A,B,C,D.....)ほどを使っています。B以降のセルはAのセルを参照しているのですが、値は参照されますがパターンが参照されません。Aのセルの色を変えたら自動的にB以降のセルにも反映されるようにしたいのですが、そういうことはできるのでしょうか? 仕事で使っていますが、今は1枚ずつ手動で色を変えていて、かなり手間がかかってしまいます。 マクロとかは初心者ですが、どなたか教えていただけないでしょうか? 例) A1の数値と色を変更したとき、B1,C1,D1・・・の数値と色も同じにしたい

  • エクセルのマクロで範囲指定をセルに番号を入れて、範囲指定したセルの字の

    エクセルのマクロで範囲指定をセルに番号を入れて、範囲指定したセルの字の色を白にして消したいのですが、番号を入れるマクロがわかりません。マクロに記録でA2からB12までのセル内の字の色を白 にする方法は Sub 字を消す() ' ' 字を消す Macro ' ' Range("A2:B11").Select With Selection.Font .ThemeColor = xlThemeColorDark1 .TintAndShade = 0 End With End SubでできるのですがD3に開始番号、E3に終了番号を指定する方法がわかりません。ご教授お願いします

専門家に質問してみよう