• ベストアンサー

Excel VBA ""を含む関数を使うには

Excel VBA ""を含む関数を使うには お世話になっております。 Excel VBAでMatch関数を使って下記のようにしたいのですが、 受け付けてもらえません。  n = Application.WorksheetFunction.MATCH("小計",range("B3:B10"),0) "小計"を""小計""と二重でくくれば良いような気がしたのですが、だめです。 どうすればよいでしょうか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>"小計"を""小計""と二重でくくれば良いような気がしたのですが、だめです。 セルに対しては、基本的には、そういう" "で挟むこと自体はひとつで良いはずです。 >n = Application.WorksheetFunction.Match("小計", Range("B3:B10"), 0) (カッコに全角が入っていたようですが) 意外に、Match関数を、VBAでWorksheetFunction で使う方法は難しいと思います。 ご存知ならよいのですが……。 Sub Test1()  Dim n As Long  On Error Resume Next  n = 0 '一回きりならいりません  n = Application.WorksheetFunction.Match("小計", Range("B3:B10"), 0)  On Error GoTo 0  If n <> 0 Then   MsgBox n  Else   MsgBox "行数が見つかりません。", vbExclamation  End If End Sub '---------------------- '私のスタイル Sub Test2()  Dim n As Variant  n = Application.Match("小計", Range("B3:B10"), 0)  If Not IsError(n) Then   MsgBox n  Else   MsgBox "行数が見つかりません。", vbExclamation  End If End Sub  

pua-pua
質問者

お礼

ありがとうございました。 記述自体はあっていたようで、今度はうまくいきました。 全角かっこのせいでしょうか・・? エラー処理を組み合わせたほうが万全ということですね。 勉強になりました。

その他の回答 (1)

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

セルには「小計」とだけ入力されているなら、記載の n = Application.WorksheetFunction.Match("小計", Range("B3:B10"), 0) で正常動作します。 セルに「"小計"」と入力されているなら、"を3重にします。 n = Application.WorksheetFunction.Match("""小計""", Range("B3:B10"), 0)

関連するQ&A