以下のようなプログラムをVBAにて作成したいと考えています!

①セルA1の数値の値だけB1から右方向へセルを塗りつぶす。
例・・・A1=6、B1~G1まで塗りつぶす。
②セルA2の数値の値だけB2から右方向へセルを塗りつぶす。
例・・・ただし、A1=6、B1~G1まで塗りつぶされていれば、A2=4の場合、H2~K2まで塗りつぶす。

VBAは初心者です。どなたかよろしくお願い致します!!

質問者からの補足コメント

  • 数値は整数も小数点もはいります!
    これを何百回も繰り返し作りたいです!ご指導お願い致します!

      補足日時:2017/04/19 00:11

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんばんは!



一例です。
A列は整数が入っているという前提です。

Sub Sample1()
Dim i As Long, myCol As Long
myCol = 2
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(i, "A") > 0 Then
Cells(i, myCol).Resize(, Cells(i, "A")).Interior.ColorIndex = 3 '//←「赤」//
myCol = myCol + Cells(i, "A")
End If
Next i
End Sub

※ 塗りつぶしは「赤」にしています。m(_ _)m
    • good
    • 1
この回答へのお礼

助かりました!ありがとうございます!

お礼日時:2017/04/21 09:17

こんばんは


簡単なものを作ってみました。

Sub test()
  '初期設定
  ThisWorkbook.Activate
  Worksheets(1).Select
  [A1].Select
  Columns("B:B").Resize(Rows.Count, Columns.Count - 1).Clear
  
  '①
  If IsNumeric([A1]) And [A1].Value > 0 Then
    [B1].Resize(1, [A1]).Interior.Color = RGB(255, 0, 0)
  End If
  
  '②
  If IsNumeric([A2]) And [A2].Value > 0 Then
    [B2].Offset(0, [A1]).Resize(1, [A2]).Interior.Color = RGB(0, 255, 0)
  End If
  
  '終了処理
  [A1].Select

End Sub

セルの指定の仕方が色々と出てきますので、そこに注意してください
・[A1] → Range("A1")の省略形です。
・Rows、Columns → 行や列ごと選択するときに使います。
・Resize → 選択範囲の大きさを指定します。
・Offset → 選択範囲を相対的にずらします(絶対的に指定するなら、行き先のセル範囲をそのまま書けばいいので)。

説明が不十分もあるかと思いますが「補足」などで追加で質問してください。
「Excel マクロについて!」の回答画像2
    • good
    • 1
この回答へのお礼

ありがとうございます!

お礼日時:2017/04/21 09:17

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報