過去ログ

                                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列は数値です。
 ───────────────────────────────────────  ■題名 : Re:VBAにSUMIFをさせたい場合で・・・  ■名前 : クウガ <kuugafactory@yahoo.co.jp>  ■日付 : 02/10/27(日) 23:58  ■Web : http://www6.ocn.ne.jp/~kuuga/  -------------------------------------------------------------------------
   どん さん、こんにちは。
>
>参考資料です。
>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)
 ───────────────────────────────────────  ■題名 : Re:VBAにSUMIFをさせたい場合で・・・  ■名前 : どん  ■日付 : 02/10/28(月) 23:04  -------------------------------------------------------------------------
   回答ありがとうございます。早速試した所うまく行きました。

まだ、VBAを始めて1.2週間の私ですが、これからも勉強していきたいと思いました。

早く色々なことをVBA上で出来るようになりたいです!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 263