- ベストアンサー
配列内の値の検索
Dim Animals(100) 下のような配列内に"ネコ"がいるかいないか 探す方法はないでしょうか? できればループ以外の方法で。 Animals(0)="ね" Animals(1)="うし" Animals(2)="とら" Animals(3)="う" Animals(4)="たつ" Animals(5)="み" Animals(...)="うま" Animals(....)="ひつじ" Animals(.....)="さる" Animals(100)="とり"
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんなのはどうでしょうか? If InStr(vbTab & Join(Animals, vbTab) & vbTab, vbTab & "ネコ" & vbTab) > 0 Then MsgBox "ネコいます" Else MsgBox "ネコいません" End If
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
(1)VBScriptのDictionaryやExistを調べてご覧 (2)基本的には総なめしかない。 頻度が多いなら、アイウエオ順の逆配列(Inverted)を作っておくとか (3)こういう課題ではJoin関数で文字列をつなぎ、Instr関数などで調べるほうがコードの見た目は少なくてすむかも。 内部機械語レベルでは繰り返しているかも知れないけれど。 http://hanatyan.sakura.ne.jp/vbhlp/vb6kansu.htm の「'Join関数の使用例」のような使い方。
お礼
ありがとうございます。 花房さんのサイトはよく見に行っていたのですが、 今回は見落としてしまいました。 また、よろしく。
vbのバージョンにもよりますが、 このような方法もあります。
お礼
ありがとうございます。 バージョンを書いていませんでした。 VB6 or VBAでした。
お礼
ありがとうございます。 なるほど・・・ですね。 早速、使わせていただきます。