- 締切済み
vbaで困っております
エクセルであるキーワードの値が入っている列番号を取得したいのですが、 Find(キーワード, lookat:=xlWhole).Column でうまくいかないです、どなたかご教授いただけないでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 米沢 栄蔵(@YON56)
- ベストアンサー率36% (37/102)
キーワード(半角カタカナ)がセルA3に入力されている。 A行の第5-30列に<X+キーワード+Y>が存在するセルが複数あり、 その列番号を全部取得する。 X、Yはキーワードとは別の文字列の意 検索対象に存在するキーワードは全角半角不明 また、キーワードの文字列間に不要な空白が存在する可能性がある。 として、マクロ文を書きます。 AA=Range("A3").Value CC="" For B=5 To 30 BB=Cells(A,B).Value '検索対象値の前後に存在する空白値を削除します。 BB=Application.WorksheetFunction.Trim(BB) '検索対象値のうち半角に出来る文字をすべて半角にします。 BB=Application.WorksheetFunction.Asc(BB) '検索対象値の半角空白を削除します。 BB=Replace(BB," ","") '検索対象値の中にキーワードが左方より何番目に存在するかを検索します。 '検索対象値の中にキーワードが存在しない場合はC=0となります。 C=Instr(BB,AA) If C>0 Then CC=CC & B & "/" End IF Next B Range("B3")=CC 7列目、18列目、24列目にキーワードが存在すれば Range("B3")に[7/18/24]と表示されます。 検索対象セルの値と検索対象値が確実であれば、 検索対象セルの値を加工する必要はありません。