Page 263 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼VBAにSUMIFをさせたい場合で・・・ どん 02/10/27(日) 14:51 ┗Re:VBAにSUMIFをさせたい場合で・・・ クウガ 02/10/27(日) 23:58 ┗Re:VBAにSUMIFをさせたい場合で・・・ どん 02/10/28(月) 23:04 ─────────────────────────────────────── ■題名 : VBAにSUMIFをさせたい場合で・・・ ■名前 : どん ■日付 : 02/10/27(日) 14:51 -------------------------------------------------------------------------
始めましてどんと申します。 エクセルのVBAについて解らない事がありまして色々徘徊していたところここのサイトに行きつきました。色々と勉強になりました。ありがとうございます。 所で一つ質問をしてもよろしいでしょうか? いまエクセルのVBA上にSUMIF関数を入れようと思っているのですが、なかなかうまく行きません。SUMIFで計算をする所は可変的なので変数を指定してます。計算自体やっているようなのですがVALUEが出てしまいます。自動でマクロを組むと相対的に数字が出てしまい使えません。どうすればVALUEが出ないよう(ちゃんと計算を)出来ますでしょうか>教えてください。よろしくお願い致します。 参考資料です。 Range("D5").Select Selection.End(xlDown).Select RESAISYU_CELL_MAX = CStr(ActiveCell.Address(rowAbsolute:=False, columnabsolute:=False)) RESAISYU_CELL_MAX_CNT = Range(RESAISYU_CELL_MAX).Row Range("B" & CInt(RESAISYU_CELL_MAX_CNT) + 1).Select ActiveCell.FormulaR1C1 = "AAA" Range("E" & CInt(RESAISYU_CELL_MAX_CNT) + 1).Value = Application.SumIf(Range("B" & "5" & ":" & "B" & CInt(RESAISYU_CELL_MAX_CNT)).Value, Range("B" & CInt(RESAISYU_CELL_MAX_CNT) + 1).Value, Range("B" & "5" & ":" & "E" & CInt(RESAISYU_CELL_MAX_CNT)).Value) ちなみにB・D列は文字列です。E列は数値です。 |
どん さん、こんにちは。 > >参考資料です。 >Range("D5").Select > Selection.End(xlDown).Select > RESAISYU_CELL_MAX = CStr(ActiveCell.Address(rowAbsolute:=False, columnabsolute:=False)) > RESAISYU_CELL_MAX_CNT = Range(RESAISYU_CELL_MAX).Row > >Range("B" & CInt(RESAISYU_CELL_MAX_CNT) + 1).Select > ActiveCell.FormulaR1C1 = "AAA" > >Range("E" & CInt(RESAISYU_CELL_MAX_CNT) + 1).Value = Application.SumIf(Range("B" & "5" & ":" & "B" & CInt(RESAISYU_CELL_MAX_CNT)).Value, Range("B" & CInt(RESAISYU_CELL_MAX_CNT) + 1).Value, Range("B" & "5" & ":" & "E" & CInt(RESAISYU_CELL_MAX_CNT)).Value) > まとめてみると、こう言うことでしょうか? 時間がなかったので、未確認です。(ごめんなさい。) Dim Hani As Range Dim Gokei As Range RESAISYU = Range("D" & Rows.Count).End(xlUp).Row Set Hani = Range("B5:B" & RESAISYU) Joken = Range("B" & RESAISYU + 1).Value Set Gokei = Range("E5:E" & RESAISYU) Range("E" & RESAISYU + 1).Value = Application.WorksheetFunction.SumIf(Hani, Joken, Gokei) |
回答ありがとうございます。早速試した所うまく行きました。 まだ、VBAを始めて1.2週間の私ですが、これからも勉強していきたいと思いました。 早く色々なことをVBA上で出来るようになりたいです! |