• 締切済み

Excelのマクロについて

sheetのB列からInputboxで入力した値を含むセルを1~複数個選択してフィルターする場合、どのようにすれば良いのでしょうか 一応自力で考えてみた結果、こんな感じになったのですが、上手くいきませんでした Range(B11).Select Myc=Inputbox(番号を半角数字で入力) Range("B11:B100").AutoFilter Field:=2, Criteria:=Myc 初心者なので、かなり雑な上に間違いだらけかもしれませんが、そこは勘弁して下さい よろしくお願いします

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.6

>Excel2013を使っているので、 当方のOffice2013の環境で確認してみました。 正しく動作します。 私の提示した内容と同じデータ、同じマクロで 期待の動作になるかどうか、 もう一度しっかり確認してみてください。 数値が実は全角といったオチはないんですよね?

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.5

>また、Criteria1:="=*" & Myc & "*"の部分でMyc & "*"が入力不可でした。 どのような症状なのかが読み取れません。 もう少し具体的に、どのように不可なのかを説明してほしいです。 >*←これに関してはアスタリスクだと判断しているのですが、違ったら教えて下さい はい、半角のアスタリスクです。 私の画面やソースを画像で添付しましたので 確認してみてください。

Sinsotu
質問者

補足

Myc & "*"に関しては間にスペースが入っていなかっただけでした 画像の添付ありがとうございます その通りにしてみましたが、どの数値を入力しても該当無しで空白が返されました おそらく、バージョンの違いなのかもしれません Excel2013を使っているので、可能であればそちらも考えていただけるとありがたいです

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.4

セルに埋まった値たちが、2桁の数値、半角スペース、3桁の数値という形式であれば、 先に私の示したコードで期待の動作になりませんでしょうか? もし期待と違うようであれば、 どのように期待外れかを教えてください。

Sinsotu
質問者

補足

結論から言うと、期待通りにはなりませんでした 具体的には、100を入力した時に、返ってくるのが03 001のみだったからです。他の数値を入力しても同じでした。 また、Criteria1:="=*" & Myc & "*"の部分でMyc & "*"が入力不可でした。 *←これに関してはアスタリスクだと判断しているのですが、違ったら教えて下さい

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

>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

Sinsotu
質問者

補足

回答ありがとうございます フィルターしたいもののデータ的には ''03 001'',''03 002''… となっているもので、このうちの001だけを入力して03 001が返ってくるようなマクロを作りたいのです ものによっては同一番号が複数ある場合もあります(例えば03 078が2つ等) なので、これらを含めた上で出来るかどうかを知りたいです

  • SI299792
  • ベストアンサー率47% (774/1619)
回答No.2

場所は、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 にします。

回答No.1

Criteria→Criteria1では? マクロの自動記録でできたのをまねしたりするといいですよ。

関連するQ&A