
キーワード検索ボックスを作ろうとしていますが、途中マクロを実行すると、「コンパイルエラー 変数が定義されていません」と出て、
Sub 品名検索()の部分が黄色くなり、そのすぐ下のans =が青くなっています。
どうすればよいのでしょうか?
作ったコードは以下です。
Sub 品名検索()
ans = InputBox("文字列を入力してください")
ans = StrConv(ans, vbNarrow) '全角入力を半角に変換
With ActiveSheet
If .AutoFilterMode Then 'オートフィルタモードがオンなら
.AutoFilterMode = False 'リセットする
End If
.Range("A4:IV4").AutoFilter 'オートフィルタモードをセット
.Range("A4:IV4").AutoFilter Field:=5, Criteria1:="=*" & ans & "*" '5つ目のフィルターに検索文字
End With
End Sub
これでE4セルをダブルクリックすると、表示が出てとまってしまいました。
No.1ベストアンサー
- 回答日時:
こんにちは。
使用している変数ansが定義されていないのではないでしょうか?
ソースの上の一番上に"Option Explicit"と書いてあると、使用する変数は必ず宣言が必要となります。(これはエディタのツール→オプションで宣言を強制するかを設定できます。)
回避策としては、Sub 品名検索()・・・の下に、
Dim ans as String
と追加してみてください。
Dim 変数名 as 型
で変数を宣言するということになります。
No.2
- 回答日時:
「Option Explicit」が記述されていませんか。
これはマクロ内で使用する変数は、先に宣言しておかなければならないという宣言文です。
この為、InputBox関数で「ans」が定義されていない為に警告されたと思います。
因みにプロレベルのコーディングならいざ知らず、一般のVBAユーザでは不要ですのでこのオプションは削除される事をお勧めします。(VBE画面→ツール→オプション→変数の宣言を強制するのチェックを外す)
回答ありがとうございます。
Option Explicitは削除しても問題ないのですね。
これからはOption Explicitの記述なしで作ろうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
皆さん定義を教えてください 「...
-
べき乗
-
電磁誘導に法則 V=ーdφ/dt...
-
無限から無限を引いたら何にな...
-
1未満と1以下の違い
-
ヘシアンが0の場合どうやって極...
-
「互いに素」の定義…「1と2は互...
-
ACCESS VBAでインポート定義の場所
-
複雑な家庭とは
-
日本語 ことば ひとまわり ふた...
-
eの0乗は1ってどういう原理です...
-
Excel関数で、セル内の文字列の...
-
「logx^2=2logx」が間違って...
-
直和分解とは? 同値関係、同値類
-
エクセルで「”」インチの表示形...
-
「切り捨て」について
-
三角関数(たとえばf(x)=sinxと...
-
なぜオイラー線は外心、重心、...
-
大学の解析学の問題です。 ∮[0...
-
数学的「割り切れる」と「因数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
皆さん定義を教えてください 「...
-
べき乗
-
「互いに素」の定義…「1と2は互...
-
1未満と1以下の違い
-
日本語 ことば ひとまわり ふた...
-
無限から無限を引いたら何にな...
-
ACCESS VBAでインポート定義の場所
-
ヘシアンが0の場合どうやって極...
-
√6=√(-2)(-3)=√(-...
-
なぜ、直角三角形ではないのにs...
-
eの0乗は1ってどういう原理です...
-
複雑な家庭とは
-
「logx^2=2logx」が間違って...
-
tanhXの近似式について
-
1wordとは、何文字ですか?
-
数字の1とは何なのか?
-
ACCESS IIF関数 複数条件の設...
-
数学の両辺2乗と√について教え...
-
e<3の証明を教えてください。
-
ACCESSでTXTにデータエクスポー...
おすすめ情報