
Excel2002で繰り返し計算を行いたいのですが・・・
以下のシートがあります。
A列 B列 C列 D列 I列
製品1 製品2 製品3 ・・・
生産量 50 80 10
生産額 1000 2400 500
単価 20 30 50
単価(生産金額/生産量)の計算をVBAで行いたいのですが、
1行ずつ指定するのではなく、繰り返し(For Next?)で
行う方法があると思うですが・・・。
(計算はI列までです)
今は1行ずつ書いています。
Range("B2") = ・・・
Range("C2") = ・・・
・
Range("I2") = ・・・
効率が悪いのでこれを改善できないかと・・・。
よろしくお願いします。
No.3
- 回答日時:
エクセルの使用・操作経験はない門外漢ですので参考程度にされて下さい。
そして、既に、回答は出尽くしていますので別の角度から・・・。
___________製品1__製品2__製品3
生産量______50_______80________9
生産額___1000____2400_____420
単価_________20________30______46
こういう形式であれば、生産量行ないし生産額行が更新された時に単価行を書き換えるのもありかと・・・。
Const 生産量行 = 2
Const 生産額行 = 3
Const 単価行 = 4
Private Sub Worksheet_Change(ByVal Target As Range)
Dim intRow As Integer
Dim intCol As Integer
Dim 生産量 As Currency
Dim 生産額 As Currency
intRow = Target.Row
intCol = Target.Column
If (intRow = 生産額行 Or intRow = 生産量行) And intCol > 1 Then
生産量 = Me.Cells(生産量行, intCol)
生産額 = Me.Cells(生産額行, intCol)
If 生産量 <> 0 And 生産額 <> 0 Then
Me.Cells(単価行, intCol) = Rounds(生産額 / 生産量, 1)
End If
End If
End Sub
上述のコードで目的は達せられます。
なお、上述のコードでは単価計算で発生した小数点以下を<切り捨て>ています。
その際に使っている Rounds関数は VBA には存在しません。
そういうことで、 Rounds関数は標準モジュールに登録する必要があります。
'
' Rounds関数用
'
Public Const 四捨五入 = 0
Public Const 切り捨て = 1
Public Const 切り上げ = 2
Public Function Rounds(ByVal M As Currency, _
ByVal A As Integer, _
Optional D As Integer = 0) As Variant
Rounds = Sgn(M) * Fix(Abs(M) * 10 ^ D + Abs((A = 0) * 0.5@ + (A = 2) * (Int(M * 10 ^ D) <> (M * 10 ^ D)))) / 10 ^ D
End Function
<別の角度の意味>
一つは、単価計算ですから、 Currenncy型を使うことも考慮すべき点。
二つは、単価計算ですから、小数点以下の処理も考慮すべき点。
No.2
- 回答日時:
普通は、VBAではなくてセルに計算式を設定して置くと思うのですが?
Sub test1()
Dim col As Integer
For col = 2 To 256
If Cells(2, col) <> "" Then
Cells(4, col) = Cells(3, col) / Cells(2, col)
Else
Exit For
End If
Next
End Sub
回答ありがとうございます。
最初はご指摘の通り計算式を置いていたのですが、
他にもマクロを使っているので、その一連の流れで質問の計算も
行うと思ったものですから・・。
お教えいただきありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
生産関数とは、ある生産要素の...
-
生産性?
-
小泉進次郎農相は24日、札幌市...
-
「試作品」と「量試品」の区別は
-
ゲーム機
-
コメを含めた農家はなぜ法人化...
-
反対語
-
先日発表になったフェアレディZ...
-
結果は違えど取り組む気持ちが...
-
複数の条件に合致した場合、特...
-
「Limited Run」の意味は?
-
生産終了の商品って
-
この図なんですが、税金を課す...
-
仕事に限界を感じる時はどのよ...
-
独占市場では、なんで限界収入...
-
ワルラス的調整により安定であ...
-
マーシャル的調整により安定で...
-
供給先と供給元
-
日本でアメ車が売れないのをサ...
-
神戸や東北の地震で液状化して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報