電子書籍の厳選無料作品が豊富!

こんにちは。
エクセル初心者で勉強中です。

今、下記のようなエクセルシートを作成しました。
シートの所々の列に”○”、”×”が入力されています。

ここで、VBAを作成し、”×”だけを検索し、メッセージボックスに
「×が4つあります・×のセル D5 F5 F6 J5」

というふうに表示したいのです。

検索はシートのすべてを検索すれば大丈夫です。
今、目視で検索しているので大変です。

どうぞよろしくお願いします。

※添付画像が削除されました。

A 回答 (4件)

No.1です。


補足の件について・・・

データがない場合の処理をしていませんでしたね。

Sub test()
Dim c As Range
Dim str As String
Dim vl As Variant
For Each c In ActiveSheet.UsedRange
If c = "×" Then
str = str & WorksheetFunction.Substitute(c.Address, "$", "") & " "
vl = vl + 1
End If
Next c
If vl = 0 Then
MsgBox "×は0個です"
Exit Sub
Else
MsgBox ("×は、" & vl & "個あります。" & vbCrLf & "セル番地は、" & str & "です。")
End If
End Sub

こんなんではどうでしょうか?m(_ _)m
    • good
    • 0

VBAの勉強なら この回答は無視してください



>今、目視で検索しているので大変です。
個数はCOUNTIF関数を使えばよいし
条件付き書式のほうが見つけやすそうな気がする。

条件付き書式のオススメ活用法
http://allabout.co.jp/gm/gc/297742/
    • good
    • 0

初心者がまずやるような課題ではない。


マクロでやるまでもなく操作で出来ること。
まず「課題ありき」(課題先行)でこういう課題を扱うのかもしれないが、初心者には難しい。
丸投げにならざるを得ない。少しでも質問者に勉強をしてもらうために、下記を書く。
検索の問題なのだが、FINDメソッドで記録される。編集ー検索はブックを対象に出来る。
(1)マクロの記録をとって勉強出来る。
コードのおおよそはそれでわかる。
コードの意味は下記WEB照会記事の解説などを見ること。
Googleで「VBA Find」で照会すればコード例が出る。
該当が複数見つかる場合だから、「VBA FindNext」でも照会する。
http://officetanaka.net/excel/vba/cell/cell11.htm
このロジック(処理の仕組み)が、初心者には難しいと思う。
(2)メッセージボックスに・・・
Googleででも「VBA Msgbox」で照会したらしまい。
(3)「×が4つあります・・・・
ただし見つかった件数(セル数)は、自分で見つかった都度カウント(+1していく)しないとならないと思う。
>検索はシートのすべてを検索すれば大丈夫です
知らないから、こんな書き方をしているが、
エクセルの色々なケースで、全シートを(一斉に)対象に出来るのは、珍しいケースだということを、あらかじめ知っておいたほうが良い。1シート限りがまだまだ多いと思う。
ーー
エクセルも進化しているので質問にはバージョンを書いて質問すること>
    • good
    • 0

こんにちは!


一例です。

Sub test()
Dim c As Range
Dim vl As Variant
Dim str As String
For Each c In ActiveSheet.UsedRange
If c = "×" Then '×は「ばつ」で変換しています。X(エックスではありません)
vl = vl + 1
str = str & WorksheetFunction.Substitute(c.Address, "$", "") & " "
End If
Next c
MsgBox ("×が、" & vl & "個あります。" & vbCrLf & "セル番地は、" & str & "です。")
End Sub

こんな感じではどうでしょうか?

尚、セル番地の表示順は1行目のA列からB列・C列・・・2行目のA列・B列・・・
と各行の列方向に向かって検索していきますので、その順位なってしまいます。m(_ _)m

この回答への補足

TOM04さん、ありがとうございました。
完璧でした。

追加で一つ質問なのですが
×が0個の場合、「×は0個です。」
というメッセージを出せることは
できるのでしょうか。

すいません。

補足日時:2011/08/06 16:51
    • good
    • 0

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


おすすめ情報