みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

お世話になっております。
Excel VBAでMatch関数を使って下記のようにしたいのですが、
受け付けてもらえません。 

n = Application.WorksheetFunction.MATCH("小計",range("B3:B10"),0)

"小計"を""小計""と二重でくくれば良いような気がしたのですが、だめです。
どうすればよいでしょうか?

投稿日時 - 2010-09-17 11:16:51

QNo.6188304

困ってます

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

>"小計"を""小計""と二重でくくれば良いような気がしたのですが、だめです。
セルに対しては、基本的には、そういう" "で挟むこと自体はひとつで良いはずです。

>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
 

投稿日時 - 2010-09-17 12:12:02

お礼

ありがとうございました。
記述自体はあっていたようで、今度はうまくいきました。
全角かっこのせいでしょうか・・?

エラー処理を組み合わせたほうが万全ということですね。
勉強になりました。

投稿日時 - 2010-09-17 13:03:54

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

セルに「"小計"」と入力されているなら、"を3重にします。
n = Application.WorksheetFunction.Match("""小計""", Range("B3:B10"), 0)

投稿日時 - 2010-09-17 11:24:19

あなたにオススメの質問