キーワード検索ボックスを作ろうとしていますが、途中マクロを実行すると、「コンパイルエラー 変数が定義されていません」と出て、
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ランキング
-
皆さん定義を教えてください 「...
-
「互いに素」の定義…「1と2は互...
-
「logx^2=2logx」が間違って...
-
無限から無限を引いたら何にな...
-
『質問の定義が分からないので...
-
べき乗
-
ヘシアンが0の場合どうやって極...
-
最大元と極大元の定義の違いが...
-
“半日”って何時間のことなんで...
-
0次元多様体
-
内積を
-
eの0乗は1ってどういう原理です...
-
マイナス7は素数ですか?
-
EXCELで定義した名前をVBAで参...
-
数字の1とは何なのか?
-
えっ!「来週」の使い方…
-
強者男性、弱者男性の定義って...
-
a・0=0の証明
-
ヘビサイド関数
-
Ker(核)やIm(像)の意味がわ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
皆さん定義を教えてください 「...
-
無限から無限を引いたら何にな...
-
べき乗
-
「logx^2=2logx」が間違って...
-
「互いに素」の定義…「1と2は互...
-
なにしてるかわからない。。
-
ACCESS VBAでインポート定義の場所
-
p⇒q=(¬p)∨qについて
-
1未満と1以下の違い
-
ヘシアンが0の場合どうやって極...
-
三角関数(たとえばf(x)=sinxと...
-
eの0乗は1ってどういう原理です...
-
『質問の定義が分からないので...
-
内積を
-
最大元と極大元の定義の違いが...
-
ACCESS IIF関数 複数条件の設...
-
質問の定義が分からないので確...
-
自然数 整数 有理数 実数 加法 ...
-
e<3の証明を教えてください。
-
変数の宣言の名称を教えてくだ...
おすすめ情報