質問: dogBreed(英語のまま) End If End Function と、説明シートを参照してもし犬種(英語)列にtiwawaがあるならその右隣のセル 犬種(日本語)列のチワワを取得して戻り値として渡したいのです。 犬種(英語)列にtiwawaがない場合戻り値は tiwawaのままでよいという事になります。 以上、日本語で書くとかえってややこしいと思い 私が考えて作ってみたコードを使ってやりたい事を説明として書いてみました。 ここがわかりにくいという点があると思いますので、その際は質問して頂けたら幸いです。 よろしくお願い致します。
回答: > > 説明シートを参照してもし犬種(英語)列にtiwawaがあるならその右隣のセル 犬種(日本語)列のチワワを取得して戻り値として渡したい > > > の部分について これを実現したいのが ``` If wanko = VLokup(dogBreed, sh1, 説明, 2, False) Then localize = wanko(日本語化) Else localize = dogBreed(英語のまま) End If ``` この部分と思いますが、ちょっとうまくなさそうです VLookup を使って処理するなら、このような手順になると思います 1)戻り値 localize の初期値(何も見つからなかったら返したい値)には入力値 dogBreed を入れておく 2)VLookup で入力値を検索して日本語列から結果を取り出す → 範囲外エラー 4)へ 3)if 日本語の中身があった(文字が入っていた)ら then 戻り値に日本語を代入する 4)戻り値が確定したので処理を終わる 英語名が無かった場合は入力値を返すことになっているので 戻り値を最初に入力値で初期化しておけばよいでしょう VLookup で日本語が取り出せたのなら英語名も存在することになるので VLookup は1回だけ実行し、かつ日本語を取り出すだけでよさそうです 以上ご参考まで