• ベストアンサー

変数に特定の文字が含まれているなら(VBA)

以前に質問した http://oshiete1.goo.ne.jp/qa4407128.html とは違うのですが 変数"あいうえお"に "あ"が含まれているなら "含まれています"と表示したいです。 Sub test() Dim strmoji As String strmoji = "あいうえお" If Find(strmoji) Like "*あ*" Then MsgBox "含まれています" End If End Sub 部分的に考えてみたのですが 「Sub、Function、または Property が定義されていません。(Error 35)」 が出てしまいます。 ご教授よろしくお願い致します。

noname#150498
noname#150498

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

If strmoji Like "*あ*" Then としてください。

noname#150498
質問者

お礼

Findはいらないんですね!ありがとうございます。

その他の回答 (1)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

>「Sub、Function、または Property が定義されていません。(Error 35)」 If Find(strmoji) Like "*あ*" Then 上記は、ワークシート関数のFindは使えないというわけです。 Like演算子を使うなら下記のようにしてください。 If strmoji Like "*あ*" Then

noname#150498
質問者

お礼

ありがとうございます。

関連するQ&A

  • VBA 変数にアスタリスクが含んでるかどうか

    変数にアスタリスクが含んでるかどうかをIFステートメントで取得するには? Sub test() Dim mystr As String mystr = "*/" If mystr Like "*" Then MsgBox "mystrはアスタリスクを含んでます。" End If End Sub このようなことをしたい場合、 mystr = "*/" でも mystr = "/" でも、結局は*が、どの文字でも含まれると認識してしまいます。 変数にアスタリスクが含まれてるかどうかを判定する方法を教えてください。

  • Excel VBA: private sub 内の変数の値を Sub へ渡すには

    VBA初心者です。private sub 内で条件に合致した変数の値をSubへ渡すにはどうしたらよいのでしょう。下記を見ていただければやりたいことの意図は伝わるかと思います。private sub内の変数が多分private sub内のみでしか参照出来ないからだとは思いますが、うまくいきません。グローバル変数化みたいなことが出来るのでしょうか。 Sub Find_OK() MsgBox "条件に合致したのは" & var1 & "です。" End Sub Private Sub Worksheet_Calculate() Dim var1  For var1 = 1 to 10  If var1 > 8 Then Call Find_OK End If Next End Sub

  • 変数の中身がアルファベットだけなのか取得するには

    変数がアルファベットだけか取得するには? Sub test() Dim mystr As String mystr = "abc" If ??? Then MsgBox "アルファベットだけです" End If End Sub のように、変数の中身がアルファベットだけなのか取得するにはどうすればいいでしょうか? ひらがな、カタカナ、漢字、記号を含んでいるかどうかを評価したいです。

  • グローバル変数などについて

    Option Explicit Dim str1 As String '・・・(1) Sub テスト() Dim str2 As String '・・・(2) str1 = "テスト1" str2 = "テスト2" MsgBox str1 MsgBox str2 End Sub (1)はグローバル変数と言うとの事ですが (2)は何変数と言うのでしょうか? ローカル変数ですか? また、(1)がdimではなく、 Public str1 As String となった場合でも、 プロシージャーの外にあれば、グローバル変数と言うのでしょうか?

  • 数値かどうかを取得したい IsNumberではダメ

    Sub Macro2() Dim mystr As String mystr = "1" If IsDate(mystr) = False Then MsgBox "NO" End If End Sub これなら日付型かどうかを取得できるのに、 Sub Macro1() Dim mystr As String mystr = "1" If IsNumber(mystr) = False Then MsgBox "NO" End If End Sub だと、IsNumberがコンパイルエラーになります。 変数に入っている値が数値として評価できるかを取得する方法を教えてください。

  • ifステートメント 大文字も小文字も区別なく

    Sub test() Dim moji As String moji = "a" If moji = "A" Then MsgBox "Aかaです" End If End Sub これだと、変数が小文字のaだからmsgboxが表示されません。 小文字も大文字も区別なく認識させるにはどうすればいいでしょうか? バイナリモードになってるようです。 Replace関数の場合は、vbTextCompareを付ければ Sub Sample() Dim moji As String moji = "a" Debug.Print Replace(moji, "A", "b", , , vbTextCompare) End Sub このように大文字小文字区別なく置換できますが このような事をifステートメントでやる方法を教えてください。

  • VBAでxmlから特定の文字を変数に入れたい

    VBAからXMLを取得したくて方法を検索し、以下のコードで何とか取得ができました。 Sub httpRequest() Dim HttpReq As MSXML2.XMLHTTP Dim DomDoc As MSXML2.DOMDocument Dim targetURL As String targetURI = "http://www.drk7.jp/weather/xml/14.xml" 'HTTP GET Set HttpReq = CreateObject("MSXML2.XMLHTTP") HttpReq.Open "GET", targetURI, False HttpReq.send (Null) 'XML PARSE Set DomDoc = CreateObject("MSXML2.DOMDocument") DomDoc.LoadXML (HttpReq.responseText) dumpDomDoc DomDoc.ChildNodes Set HttpReq = Nothing Set DomDoc = Nothing End Sub Sub dumpDomDoc(objNode) Dim obj For Each obj In objNode MsgBox obj.ParentNode.nodeName & " : " & obj.NodeValue If obj.HasChildNodes Then dumpDomDoc obj.ChildNodes End If Next End Sub このコードですと、読み込んだXMLを一行づつメッセージボックスに延々と表示するだけなのですが、 例えば行先のXMLファイルにある<description>と</description>に囲まれた部分だけを変数に格納するにはどのように記述すればよろしいのでしょうか? ググってはみましたが知識不足の為、解説も理解できず困っております。 大変お手数ですがご教示いただけますようお願いします。

  • vba関数 変数の中に該当の文字がいくつあるか

    vba関数 変数の中に該当の文字がいくつあるかを取得するには? Sub Sample() Dim moji As String moji = "aiuuueou" MsgBox "uは4つです" End Sub こんな感じで、moji という変数の中にuはいくつあるかを取得する方法はありますか?

  • 「R = ActiveCell」がエラーになる。

    エクセルvbaです。 下記のコードのどこがおかしいのか教えてください。 Sub Macro1() Dim R As Range R = ActiveCell If R Like "*1*" Then MsgBox "1があります" End If End Sub アクティブセルに「1」があれば、 MsgBoxを表示したいのですが うまくいきません。 オブジェクト変数または With ブロック変数が設定されていません。(Error 91) というエラーになります。 If ActiveCell Like "*1*" Then ではなく、一度、変数Rに格納したいです。 解決策をよろしくお願いします。

  • 「Xor」と「Or」の違い(vba)

    こんばんは。 よくわからないので教えてください。 Option Explicit Sub Xorのtest() Dim フルーツ As String フルーツ = "りんご" If フルーツ = "りんご" Xor フルーツ = "イチゴ" Then MsgBox フルーツ End If End Sub '**************************************** Sub Orのtest() Dim フルーツ As String フルーツ = "りんご" If フルーツ = "りんご" Or フルーツ = "イチゴ" Then MsgBox フルーツ End If End Sub 上記のコードなのですが どちらも結果は同じです。 「Xor」と「Or」の違いがよくわからないのですが 何が違うのでしょうか? 調べてみると「Xor」は「排他的理論和」だそうです。 よろしくお願いします。

専門家に質問してみよう