No.3
- 回答日時:
こんにちは
Application.WorksheetFunction.SumIfという関数がVBAにあります。
以下の例は、アクティブセルにアクティブセルの1列前(Offset(0, -1).Value)
の値を検索値として、検索範囲 A1:A14、集計範囲 B1:B14とする例です。
Sub SumIf_Sample()
ActiveCell.Formula = _
Application.WorksheetFunction.SumIf(Range("A1:A14"), ActiveCell.Offset(0, -1).Value, Range("B1:B14"))
End Sub
ご参考まで
この回答へのお礼
お礼日時:2008/11/15 22:59
初心者な者でそのまま貼り付けさせていただきましたが、
エラー表示になってしまいます。
Application.WorksheetFunction.SumIf関数ですね
勉強してみます。
ご回答ありがとうございました。
No.2ベストアンサー
- 回答日時:
こんばんは。
数式をワークシートに入れて値を求めるのは、VBAのよさが出てきません。
なお、必ずしも、FormulaR1C1 と書く必要はありません。FormulaLocal などでよいです。Local の意味は、日本独特の関数を入れる場合に必要なことがあります。
Test2 は、少し、RC[-1] の表現が、ActiveCell.Offset(, -1).Value というのは、本来のVBAの書き方ではありませんが、以下のような方法があります。
本来は、ActiveCell.Offset(, -1).Value の場所は決めたほうがよいです。
Sub Test2()
Dim a As String
a = ActiveCell.Offset(, -1).Address
ActiveCell.Value = Application.Evaluate("SUMIF($A$2:$A$14," & a & ",$D$2:$D$14)")
End Sub
'必ずしも同じではないのですが、以下のような書き方がマクロらしいです。
ただし、不等号や等号は、必要に応じて書き換える必要があります。
Sub Test3()
Dim i As Integer
Dim ret As Double
With Range("A2:A14")
For i = 1 To .Rows.Count
If ActiveCell.Offset(, -1).Value = .Cells(i, 1).Value Then
ret = ret + .Cells(i, 4).Value 'A列に対して、4列目という意味
End If
Next i
End With
ActiveCell.Value = ret
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- 物理学 写真の問題について質問なのですが、解説を見る限りc1とc2の電気量は等しくないように思えます。 しか 4 2023/07/01 21:41
- 工学 CR発振回路 C1=C2=C=0.001【uF】 R1=R2=R3=16【kΩ】 R4は出力電圧が正 2 2023/05/10 19:13
- その他(Microsoft Office) 時間の平均値を計算する方法を教えて。 1 2023/08/06 12:02
- 物理学 この問題における抵抗r1とxってどのように考えれば良いのでしょうか?トルクはT=P2/ωsなのでP2 1 2022/06/19 18:46
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル②
-
エクセルVBA、別ブックへ転記す...
-
(マクロ)データをAブックからB...
-
エクセルを使っていて2024/5/15...
-
エクセルの暗号化なしのバーの...
-
Excelでセルの値が同じか...
-
エクセルの計算
-
vba Bookを最小にせずに、UserF...
-
【マクロ】必要な項目(列)の...
-
Excel
-
エクセル:一覧表に存在する文...
-
エクセルでの作業計算方法について
-
Excelで縦軸の書式を0:00形式の...
-
Microsoft 365の Excel を使用...
-
指定文字の間に
-
Googleスプレッドシートでファ...
-
エクセルで年休を管理する方法...
-
UNIQUE関数が使えないバージョ...
-
エクセル関数を教えてください
-
【マクロ】その時、その時で変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報