質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

1272閲覧

Excel のVBAでの文字列比較

zeijaku.net

総合スコア161

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/05/24 07:53

VBAについてご教示ください。

buffer_split(10) の中身は「今日はジョンソンが勝ちました」「終了時のマイケルは明るい」などの短文が入っています。
人の名前で処理を分岐をしたいと考えておりますが、下記ではうまく比較が出来ておりません。

MsgBox buffer_split(10) If InStr(buffer_split(10), "*ジョンソン*") > 0 Then MsgBox "Jonson" ElseIf InStr(buffer_split(10), "*マイケル*") > 0 Then MsgBox "Mikel" End If

MsgBoxでbuffer_split(10)を表示させた場合に人名が含まれているのですが、MsgBoxでJonsonやMikelが表示されません。
分岐時の条件に一致していないためと思われますが、どのように変更すれば一致するでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

部分一致の比較の2つの方法をゴッチャにしているようです。

Like演算子

buffer_split(10) Like "*ジョンソン*"

InStr関数

InStr(buffer_split(10), "ジョンソン") > 0

投稿2017/05/24 08:25

hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zeijaku.net

2017/05/24 08:29

比較に関する公式が混ざってしまっていたようです。 こちら修正を行い問題が解決しました。 大変助かりました。 ありがとうございます。
guest

0

ベストアンサー

分岐時の条件に一致していないためと思...

それが怪しいと思っているなら 試してください。

If文の最後に Else をおいて、そこのコードが実行されるようなら 条件式が おかしい ということに。

投稿2017/05/24 08:01

BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zeijaku.net

2017/05/24 08:13

説明が不足しておりました。 最後にElseを置いて実行した場合は、その部分が実行されるので何らかの原因で条件に一致していないと考えております。 しかしbuffer_split(10)には対象となる文字列が含まれておりMsgBoxで表示されていることもあり、恥ずかしながらなぜ一致しないのかが分からない状態となっております。
BeatStar

2017/05/27 05:54

そもそも buffer_split() には何が入っているのでしょうか。 例文"今日はジョンソンが勝ちました" とかがはいっているのでしょうけど、 どういう風に入っているのかすら... たとえば、C言語みたいに 0番目: "今" 1番目: "日" 2番目: "は" ... となっていて、それの 10番目 にアクセスしているつもりなのか、 それの 10番目ではなくて 11個 ( 0 ~ 10 ) を...って言う意味としてなのか... とかのような条件次第で意味が変わってきます。 なので、質問の方の"編集" だったかな。 あれで追加してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問