• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロのことについてです。 )

エクセルのマクロで日本語のオートフィルタ検索を作成する方法

このQ&Aのポイント
  • エクセルのマクロを使って日本語でオートフィルタの絞り込み検索をする方法を教えてください。
  • 英語ではうまく動作しているマクロですが、日本語ではうまくいかないようです。
  • 提供されたコードを確認しましたが、問題が見つかりませんでした。どのようなエラーメッセージが表示されますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.4

ご提示のコードが元コードをそのままコピー&ペーストしたものならタイプミスです。 nihongoに格納したいのはD3セルの値ではないのですか? >.Cells(3.4) これでは.Cells(3)、つまりC1セルの値が格納されています。 .Cells(3, 4)...です。 >If nihongo = Empty Then でも判定はしてくれます。(ただし長さ0文字列""もTrue判定します) 空白セルだったら If IsEmpty(nihongo) Then のほうがしっくりきますけどね。

abillionaire
質問者

お礼

こんな凡ミスしているとは全く気付きませんでした・・・。 本当にありがとうございました!感謝の気持ちでいっぱいです。 無事思い通りの挙動するようになりました!

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.3

追記。 Option Explicitは「変数の自動定義を不可能にする」宣言で、コードの先頭に一回書いてあればいいです。 これの効果は、Dimで宣言した変数でないものが出てくるとエラーにしてくれるというもので、「したほうがよい」じゃなくて「絶対にしなさい」という類のものです。 #なのにデフォルトでは付かないんですよねー 関数・サブルーチンの定義位置は、そのシートでしか使わないものなら標準モジュールに置く事もないでしょうね。

abillionaire
質問者

お礼

分かりやすい説明ありがとうございます。 次からは Option Explicitを使うようにします。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

IsEmptyをCellsにかけて if IsEmpty(Worksheets("絞り込み").Cells(3.4)) = True then nihongo = "*" else nihongo = Worksheets("絞り込み").Cells(3.4).Value end if とするか、あるいは文字列長で判断して if Len(nihongo) = 0 then nihongo = "*" end if とするか。 たぶんどっちでも行けると思いますがお好きな方で。

すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> If nihongo = Empty Then If IsNull(nihongo) Then か If IsEmpty(nihongo) Then にしてみてください。 あと、Option Explicit宣言してますかね?

abillionaire
質問者

お礼

分かりづらい質問で回答してくれるか不安だったのですが、 真っ先に回答してくださり、大変ありがとうございました。 Option Explicitも次回から使うようにします。

abillionaire
質問者

補足

回答いただき、大変ありがとうございます。 If IsNull(nihongo) Thenと If IsEmpty(nihongo) Thenの いずれも試してみましたが、うまくいきませんでした。 Option Explicit宣言はしていませんが、した方がよいのでしょうか? 少し調べてみましたが、使い方がよく分らず、 sub関数の直前にOption Explicit を置いてみましたが、 結果変わらずでした。 本当に初心者なので、今の状況を上手く説明できずに申し訳ございません・・・。 ちなみに関数は標準モジュールフォルダに入れて使ってもいんでしょうか? 該当のシートで記入した方がいいのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A