Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4811 / 13644 ツリー ←次へ | 前へ→

【54290】countifと不等号 にゃこ 08/3/3(月) 14:38 質問[未読]
【54291】Re:countifと不等号 Jaka 08/3/3(月) 14:47 発言[未読]
【54293】Re:countifと不等号 [名前なし] 08/3/3(月) 15:17 お礼[未読]
【54297】Re:countifと不等号 にゃこ 08/3/4(火) 11:27 質問[未読]
【54298】Re:countifと不等号 Jaka 08/3/4(火) 13:45 発言[未読]
【54303】Re:countifと不等号 にゃこ 08/3/4(火) 18:07 お礼[未読]

【54290】countifと不等号
質問  にゃこ  - 08/3/3(月) 14:38 -

引用なし
パスワード
   お久しぶりにお世話になります。

題名のように、countif文の条件で不等号を使いたいのですが、
「シート2のA1セルに、シート1のA1〜A100から値が50以下の個数を数えたい」とき

Range("A1") = "= COUNTIF(Sheet1!A1:A100, "<="&50)"
と手打ちでやればうまくいくのですが、
VBAで打つと
Range("A1") = "= COUNTIF(Sheet1!A1:A100, " <= " & 50)"
のように" <= "の部分に勝手にスペースが入ってエラーになってしまいます。

これはどう対処すればいいでしょうか?

【54291】Re:countifと不等号
発言  Jaka  - 08/3/3(月) 14:47 -

引用なし
パスワード
   "= COUNTIF(Sheet1!A1:A100,""<=""&50)"

解りづらければ素直に。
"= COUNTIF(Sheet1!A1:A100," & """" & "<=" & """" & "&50)"

【54293】Re:countifと不等号
お礼  [名前なし]  - 08/3/3(月) 15:17 -

引用なし
パスワード
   Jakaさま

ありがとうございます!できました!

下の方はよく分からないですがorz
ダブルクォーテーションでもう一回囲めばいいんですね。

レベルの低い質問でごめんなさい。
ありがとうございました。

【54297】Re:countifと不等号
質問  にゃこ  - 08/3/4(火) 11:27 -

引用なし
パスワード
   続けての質問すみません。

Range("A1") = "= COUNTIF(Sheet1!A1:A100,""<=""&50)"
の式ですが、「50以下にする」という条件を可変にしたいのですが、
その条件を他のブックから参照した時、なぜか全部0になってしまいます。

下のように書いたのですが、どこがおかしいのか分かりません。
ご指摘いただけますでしょうか。

Range("A1") = "= COUNTIF(Sheet1!A1:A100,""<=""&[にゃ〜.xls]Sheet1!Cells(i , 1)"
で、にゃ〜ブックのA1〜A10に記入されてる数字以下の個数を数えるというようにしたいです。

よろしくお願いします。

【54298】Re:countifと不等号
発言  Jaka  - 08/3/4(火) 13:45 -

引用なし
パスワード
   >解りづらければ素直に。
>"= COUNTIF(Sheet1!A1:A100," & """" & "<=" & """" & "&50)"
の""""は、「"」のことです。4つ続けて1つの「"」になります。
続けて書くと場合によっては、こんがらがるからこっちの方が素直で解りやすいです。
続けて書くかっこよく見えて、バラに書くと不細工に見えるのか知りませんが、
解りにくい時は、バラで書いた方が後で修正もしやすいです。
1つの文字として扱えば良いわけだし。

i = 5
AA = "[にゃ〜.xls]Sheet1!" & Cells(i, 1).Address(0, 0)
MsgBox "= COUNTIF(Sheet1!A1:A100,""<=""&" & AA & ")"

i = 5
BB = "<="
CC = "[にゃ〜.xls]Sheet1!" & Cells(i, 1).Address(0, 0)
MsgBox "= COUNTIF(Sheet1!A1:A100,""" & BB & """&" & CC & ")"

↑いちいちこんな風に確認するより
↓こっちの方が解りやすくないですか。

i = 5
変数1 = "<="
変数2 = "[にゃ〜.xls]Sheet1!" & Cells(i, 1).Address(0, 0)
"= COUNTIF(Sheet1!A1:A100," & """" & 変数1 & """" & "&50)"
                             ↓
                          "&" & 変数2 & ")"

【54303】Re:countifと不等号
お礼  にゃこ  - 08/3/4(火) 18:07 -

引用なし
パスワード
   またまたありがとうございます。

理解するのにすんごく時間かかりましたが、ようやく分かってきました。
私の脳みそスペックはかなり低いみたいなので(T_T)、何度か繰り返して覚えることにします。

有難うございました。

4811 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free