
キーワード検索ボックスを作ろうとしていますが、途中マクロを実行すると、「コンパイルエラー 変数が定義されていません」と出て、
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
べき乗
-
皆さん定義を教えてください 「...
-
無限から無限を引いたら何にな...
-
e<3の証明を教えてください。
-
「切り捨て」について
-
性暴力ってどこまでOK,どこから...
-
「たて目」っていうのは要する...
-
1未満と1以下の違い
-
同時(性)の定義の意味、そして...
-
「logx^2=2logx」が間違って...
-
単調増加、単調減少の x の範囲
-
5桁の整数nにおいて,万の位,...
-
コンビネーションの偶数奇数判...
-
合法ロリの年齢的定義は、何歳...
-
1wordとは、何文字ですか?
-
ヘシアンが0の場合どうやって極...
-
Vがベクトル空間でW1,W2がVの部...
-
外延性の公理について(F=Gがあ...
-
有効数字での切り上げについて
-
eの0乗は1ってどういう原理です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
皆さん定義を教えてください 「...
-
べき乗
-
同時(性)の定義の意味、そして...
-
無限から無限を引いたら何にな...
-
eの0乗は1ってどういう原理です...
-
1未満と1以下の違い
-
「たて目」っていうのは要する...
-
最大元と極大元の定義の違いが...
-
直和分解とは? 同値関係、同値類
-
ヘシアンが0の場合どうやって極...
-
性暴力ってどこまでOK,どこから...
-
「logx^2=2logx」が間違って...
-
合法ロリの年齢的定義は、何歳...
-
「互いに素」の定義…「1と2は互...
-
日本語 ことば ひとまわり ふた...
-
√6=√(-2)(-3)=√(-...
-
複雑な家庭とは
-
電磁誘導に法則 V=ーdφ/dt...
-
p⇒q=(¬p)∨qについて
-
lim n→0 =n=0となりますが lim ...
おすすめ情報