• ベストアンサー

配列内の値の検索

Dim Animals(100) 下のような配列内に"ネコ"がいるかいないか 探す方法はないでしょうか? できればループ以外の方法で。            Animals(0)="ね" Animals(1)="うし" Animals(2)="とら" Animals(3)="う" Animals(4)="たつ" Animals(5)="み" Animals(...)="うま" Animals(....)="ひつじ" Animals(.....)="さる" Animals(100)="とり"

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

  • ベストアンサー
回答No.1

こんなのはどうでしょうか? If InStr(vbTab & Join(Animals, vbTab) & vbTab, vbTab & "ネコ" & vbTab) > 0 Then MsgBox "ネコいます" Else MsgBox "ネコいません" End If

urourojp
質問者

お礼

ありがとうございます。 なるほど・・・ですね。 早速、使わせていただきます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

(1)VBScriptのDictionaryやExistを調べてご覧 (2)基本的には総なめしかない。 頻度が多いなら、アイウエオ順の逆配列(Inverted)を作っておくとか (3)こういう課題ではJoin関数で文字列をつなぎ、Instr関数などで調べるほうがコードの見た目は少なくてすむかも。 内部機械語レベルでは繰り返しているかも知れないけれど。 http://hanatyan.sakura.ne.jp/vbhlp/vb6kansu.htm の「'Join関数の使用例」のような使い方。

urourojp
質問者

お礼

ありがとうございます。 花房さんのサイトはよく見に行っていたのですが、 今回は見落としてしまいました。 また、よろしく。

noname#60992
noname#60992
回答No.2

vbのバージョンにもよりますが、 このような方法もあります。

参考URL:
http://msdn2.microsoft.com/ja-jp/library/c7cdd1d1(VS.80).aspx
urourojp
質問者

お礼

ありがとうございます。 バージョンを書いていませんでした。 VB6 or VBAでした。

関連するQ&A