アプリ版:「スタンプのみでお礼する」機能のリリースについて

先日はありがとうございました。

おかげさまで、1つ作業が終了しました。

ですが、またわからないことが出てしまったので
ご教授ください。

現在、B2~任意の行列に書かれている"済"という単語の数を
数えるマクロを作成しています。

下記のマクロは作成したマクロのなのですが
1列のみであれば、動きます。

しかし、任意の列の指定がうまくいかず
困っています。

If Not Application.Intersect(Target, Range("B2B" & y)) Is Nothing Then

With Worksheets("Sheet2")
.Range("B" & z).Value = _
Application.WorksheetFunction.CountIf(.Range("B2:B" & y), "済")
End With
End If

yは最下行の2つ上までを表しています。(B10が最下行の場合はB8)
zは最下行を表しています。

1行目に任意の列(可変)まで項目が記入されていて
その箇所までを対象としようとしています。

これを、列も任意の箇所にする場合はどのようにすればいいのでしょうか?

聞くばかりになってしまって申し訳ないですが
よろしくお願いします。

A 回答 (1件)

こんにちは。



>1行目に任意の列(可変)まで項目が記入されていて
>その箇所までを対象としようとしています。
>これを、列も任意の箇所にする場合はどのようにすればいいのでしょうか?

一例ですが、一行目の最終列番号を取得する方法です。
 変数 = .Range("IV1").End(xlToLeft).Column
EXCEL2003までは列はIV(256)までですが、
2007がどうなっているか知りませんが今後の拡張を考慮すると
 変数 = .Cells(1, .Columns.Count).End(xlToLeft).Column
とした方が良いかも知れません。


それから、範囲の指定方法ですが、
.Range("B2:B" & y)
となっていますが、
.Range(.Cells(2, "B"), .Cells(y, "B"))

.Range(.Cells(2, 2), .Cells(y, 2))
といった表現も可能です。


上記の最終列番号と組み合わせれば、
.Range(.Cells(2, "B"), .Cells(y, 変数))
のように指定する事ができます。

参考になれば幸いです。

この回答への補足

すいません。

自己解決しました。

ありがとうございました。

補足日時:2007/08/23 15:40
    • good
    • 0
この回答へのお礼

さっそくのご回答ありがとうございます。

おかげさまで、最右列を指定することができました。

これを使って、列ごとの"済"をカウントするには
どうすればいいのでしょうか?

 A B C D …
   済  済
   済
     済
合計 2 1 1 …

のように行いたいのですが…

※合計が最下行になります

よろしくお願いします

お礼日時:2007/08/23 02:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!