- 締切済み
Excelのマクロについて
sheetのB列からInputboxで入力した値を含むセルを1~複数個選択してフィルターする場合、どのようにすれば良いのでしょうか 一応自力で考えてみた結果、こんな感じになったのですが、上手くいきませんでした Range(B11).Select Myc=Inputbox(番号を半角数字で入力) Range("B11:B100").AutoFilter Field:=2, Criteria:=Myc 初心者なので、かなり雑な上に間違いだらけかもしれませんが、そこは勘弁して下さい よろしくお願いします
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- HohoPapa
- ベストアンサー率65% (455/693)
>Excel2013を使っているので、 当方のOffice2013の環境で確認してみました。 正しく動作します。 私の提示した内容と同じデータ、同じマクロで 期待の動作になるかどうか、 もう一度しっかり確認してみてください。 数値が実は全角といったオチはないんですよね?
- HohoPapa
- ベストアンサー率65% (455/693)
- HohoPapa
- ベストアンサー率65% (455/693)
- HohoPapa
- ベストアンサー率65% (455/693)
>Inputboxで入力した値を含むセル これは、"23"と入力したら 23 の埋まったセルに加え、 123 や 234 や 1234 もフィルターにヒットさせるということでしょうか? フィルターには、数値フィルターとテキストフィルターがあり、 B12以下が数値の羅列の場合、数値フィルターが強制され 「入力した値を含むセル」というフィルターを行うことができません。 添付画像のように、数値の羅列ではあるものの セル上では文字列な扱いになっているのであれば 後記のコードで期待のことができます。 数値の羅列で、かつ、数値タイプのまま 「入力した値を含むセル」という条件で絞り込みを行うのであれば おそらく、 単なるフィルターを呼び出す制御では実現できないと思います。 これを実現するコードを期待していますか? Option Explicit Sub sample() Dim Myc As String ActiveSheet.AutoFilterMode = False Range("B11").Select Myc = InputBox("番号を半角数字で入力") Range("B11:B100").AutoFilter Field:=1, Criteria1:="=*" & Myc & "*" End Sub
補足
回答ありがとうございます フィルターしたいもののデータ的には ''03 001'',''03 002''… となっているもので、このうちの001だけを入力して03 001が返ってくるようなマクロを作りたいのです ものによっては同一番号が複数ある場合もあります(例えば03 078が2つ等) なので、これらを含めた上で出来るかどうかを知りたいです
- SI299792
- ベストアンサー率47% (774/1619)
場所は、B11:B100固定でいいのですか。 Option Explicit ' Sub Macro1() Dim Myc As String ' Myc = InputBox("番号を半角数字で入力", "オートフィルター") ActiveSheet.AutoFilterMode = False [B11:B100].AutoFilter 1, Myc End Sub 間違い ①InputBoxの引数に""がありません。 ②B列しか指定していないのに Field:=2 にしている。ここは、オートフィルターの範囲内の相対値を指定します。だから1列しか指定しないのなら、1しか指定できません。2にしたければ、 [A1:B100].AutoFilter 2, Myc にします。
- tanakanono
- ベストアンサー率24% (134/553)
Criteria→Criteria1では? マクロの自動記録でできたのをまねしたりするといいですよ。
補足
Myc & "*"に関しては間にスペースが入っていなかっただけでした 画像の添付ありがとうございます その通りにしてみましたが、どの数値を入力しても該当無しで空白が返されました おそらく、バージョンの違いなのかもしれません Excel2013を使っているので、可能であればそちらも考えていただけるとありがたいです