色の知識で人生の可能性が広がる!みんなに役立つ色彩検定 >>

色々調べてみたのですが該当するものが見当たらず、ご存知の方がいらっしゃいましたら教え下さい。

同じ列内で連続する数式を同じ項目にまとめて繰り返したいのですが、そのようなことは可能でしょうか? 画像の赤枠に入力されている数式を同列の赤枠内にコピーしたいイメージです。
合計1にある日付欄は空欄のままです。
(参考)各日の単価についてはFor~Nextでマクロを組みました。
------------------------------------------------------------------------------------------
◎作成したマクロ
Sub 週ごとの合計()

Range("J3:J4").Formula = "=SUM(C3:I3)"
Range("J5").Formula = "=J3/J4"
Range("J5").NumberFormat = "####.0"単価
------------------------------------------------------------------------------------------
(参考) 客単価のマクロ
Sub 客単価()

Dim i As Long
Dim j As Long

For i = 3 To 9
For j = 3 To 21 Step 4

Cells(j + 2, i) = Cells(j, i) / Cells(j + 1, i)
Cells(j + 2, i).NumberFormat = "####.0" '少数点1桁で示します。
Cells(j + 2, i).HorizontalAlignment = xlRight '右寄せにします。

Next j
Next i

End Sub

「Excelマクロ 同列内で複数の数式を繰」の質問画像
教えて!goo グレード

A 回答 (5件)

こんにちは


J2が空白ならそれを含め、コピペでどうかな
Range("J3:J4").Formula = "=SUM(C3:I3)"
Range("J5").Formula = "=J3/J4"
Range("J5").NumberFormat = "####.0"単価
Range("J2:J5").Copy Range("J6:J25")

見落とすところでしたVBEでは 単価は '単価にして
    • good
    • 1
この回答へのお礼

ご返答ありがとうございます。
とてもシンプルでわかりやすいです。

お礼日時:2022/05/22 15:02

No.3も間違い。


あぁ、ごめんなさい。
元の式の

For j = 3 To 21 Step 4

ここ、 「To 2」にしちゃってる。
「To 21」に戻してください。
    • good
    • 0
この回答へのお礼

早々にご返答いただきありがとうございます。
丁寧なマクロで勉強になりました!

お礼日時:2022/05/22 14:54

No.1はダメ!間違い!失礼しました。


こっちでお試しを。

Sub 客単価()
 Dim i As Long
 Dim j As Long
 Dim lastRow As Long

 For i = 3 To 9
  For j = 3 To 2 Step 4
   Cells(j + 2, i).Select
   Cells(j + 2, i) = Cells(j, i) / Cells(j + 1, i)
   Cells(j + 2, i).NumberFormat = "####.0" '少数点1桁で示します。
   Cells(j + 2, i).HorizontalAlignment = xlRight '右寄せにします。
  Next j
 Next i
 
 For j = 3 To 25 Step 4
  Cells(j, "J").Formula = "=SUM(RC[-7]:RC[-1])"
  Cells(j + 1, "J").Formula = "=SUM(RC[-7]:RC[-1])"
  Cells(j + 2, "J").Formula = "=R[-2]C/R[-1]C"
  Cells(j + 2, "J").NumberFormat = "####.0"
 Next
End Sub
    • good
    • 0

こんにちは



>各日の単価についてはFor~Nextでマクロを組みました。
それができているのなら、同じようにすれば良いのでは?
縦にコピペするだけなので、ご提示のものよりも簡単です。

J3:J5に式等が設定されているものとして・・

For i = 7 To 23 Step 4
 Range("J3:J5").Copy Range("J" & i)
Next i
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
色々な方法があるのですね。
勉強になりました!

お礼日時:2022/05/22 15:02

こういう感じかな。



Sub 客単価()
 Dim i As Long
 Dim j As Long
 Dim lastRow As Long
 For i = 3 To 9
  For j = 3 To 21 Step 4
   Cells(j + 2, i).Select
   Cells(j + 2, i) = Cells(j, i) / Cells(j + 1, i)
   Cells(j + 2, i).NumberFormat = "####.0" '少数点1桁で示します。
   Cells(j + 2, i).HorizontalAlignment = xlRight '右寄せにします。
   '↓追加----
   Cells(j, "J").Formula = "=SUM(RC[-7]:RC[-1])"
   Cells(j + 1, "J").Formula = "=SUM(RC[-7]:RC[-1])"
   Cells(j + 2, "J").Formula = "=R[-2]C/R[-1]C"
   Cells(j + 2, "J").NumberFormat = "####.0" '単価
   '↑追加----
  Next j
 Next i
End Sub
    • good
    • 0

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

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

教えて!goo グレード

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

人気Q&Aランキング