
御力添え、お願いします。m(__)m
質問はエクセルにて、特定の文字が同じで、
含まれていれば"OK"としたいのですが、
自分なりに調べて、*(アスタリスク)が、
ワイルドカードで、使ってみたのですが↓
=IF(A1="*"&"B"&"*","OK","NO")
と書いても結果が、"NO"になるのです。
A1には、「ABC」や「CCB」「BAKA」が入り、
全て"OK"としたいのです。
?マークも対象文字位置が同じならOKと思い、
試しましたが、これもダメでした。
IF文に限定したわけでは、ないです。
他の方法でも、特定文字の有無から次を実行できる、
方法を御教授して頂きたいのです。
本当は、マクロ(VBA)の中で、使って行きたいので、
セルの直接入力とVBE入力とで、違いが有るのなら、
両方教えて貰えれば、幸いです。
文法などでは無く、単にexcelの設定ミスなのかも
知れませんが、自分なりに調べた結果
わかりませんでした。(ToT)
答えの説明は、私がバカなのでお手数になると、
思いますので文法(方法)だけでも構いません。
出来れば、わかり易く解説して貰えると、嬉しいです。
よろしく、お願いします。m(__)m
No.5ベストアンサー
- 回答日時:
>sheetの名前が「*重要*」なら…、
>If Active.Sheet.name.value like "*重要*" Then
(私も元の質問と違ってきているような気がしますが・)
アクティブシートの名前は、
ActiveSheet.name で得られるので
アクティブシートの名前に重要が含まれるかどうかは
If ActiveSheet.name like "*重要*" Then
と書けます。
また別の方法で
If instr(ActiveSheet.name,"重要") Then
とか
If instr(ActiveSheet.name,"重要")<>0 Then
でも良いです。
>以前は、IF~ = "絶対重要"で、動いていました。
シート名が、"絶対重要" で一致するかどうか調べる場合には、
IF~ = "絶対重要"
として一致しているかどうかを調べることができますが、
この時に'*' のようなワイルドカードを用いることはできません。
そのような場合に'='の代わりに Like 演算子を使います。
BLUEPIXY様、並びに imogasi様、
遅くなって、すみません。
御回答、ありがとうございました。m(__)m
当初からの質問がズレてるとのご指摘、
申し訳ごさいませんでした。m(__)m
適当に、サイトからのツギハギで作った
モノだったので、そのレベルで答えがあっても
理解できないと思い、歪曲してお聞きしてました。 お手数をお掛けして、すみませんでした。
又、質問させて頂く事になると思いますが、
ひとまずは、解決です。\(^o^)/
ありがとうございました。m(__)m
No.4
- 回答日時:
#3です。
お礼の>RengeやCellを使わないで、するにはどーすればよいでしょうか?
この質問はエクセルに関数ことのようですし、A1とあるからセルの文字列のことのように思いました。そうすると「RengeやCellを使わないで」という意味が良くわかりません。
文字列 Like (パターン)がTRUEかFALSEの値を持ちます。
文字列はセルの値でなくても、シート名でも良いです。
IFではワイルドカードは直接使えないでしょう。
COUNTIFなら使えます。
VBAならWorksheetFunction.COUNTIFなら使えると思います。
質問の意味がところどころ捉えられなくて、回答できない状態です。
ーーー
=IF(COUNTIF(A1,"*B*")>0,"OK","NO")
こういうことをきいているのかな。
No.3
- 回答日時:
質問が出ているVBAについて
Sub test01()
For i = 1 To 10
x = Cells(i, "A").Value Like "*B*"
If x = True Then
Cells(i, "B") = "Y"
Else
Cells(i, "B") = "N"
End If
Next i
End Sub
A1:A10に下記文字列があるとする。
実行後は下記B列。
ASDBCVY
FGHDN
BBRTEY
GHSRN
BNDFXY
HJNMBBY
BY
bbN
B BY
XBBY
LIKEは、VB(A)のLIKE演算子といわれるものです。
文字パターンに? * # [文字リスト] [!文字リスト]
などが使えます。
指定した文字列が、文字パターンの条件と一致しているか調べることができる。
Accessの例ですが
http://www.geocities.jp/cbc_vbnet/kisuhen/enzans …
のLIKE演算子を参照。
SQLなどでも同じようなものが使える。
imogasi様、御回答ありがとうございます。m(__)m
LIKE演算子とは、まったく知りませんでした。
ところで、本当に申し訳ないのですが、
先にも補足させて頂いた様に、RengeやCellを
使わないで、するにはどーすればよいでしょうか?
○○が◇▲×なら→If~~like "*▲*" Then
で、良いのでしょうか?下記では、シート名に
しておりましたが、これがテキストが起動中ならに
変更した時も、同様の文法構成で良いのでしょうか?
できれば、=(イコール)"*▲*" Then の
形であれば分りやすくて、嬉しいのですが。(~_~;)
恐れ入りますが、もう暫く
御教授お願いします。m(__)m
No.2
- 回答日時:
>VBA版がresult=…と有るのですが、私には理解不能です。
結果を何かに代入するのだと思って、そのように書きました。
別にサンプル以上の意味は無いです。
特に"OK","NO" の値が必要ないなら普通にif で
If Range("A1").value like "*B*" Then
'B が含まれていた時の処理
Else
'B が含まれていない時の処理
End If
とすればいいと思います。
再び早々と、ありがとうございます。m(__)m
そーですね、"代入"ですね。
数式で、考えてました。(~_~;)オハズカシイ。
ところで、申し訳ないのですが、
Range("A1")を使わずに、IF~~Thenの形で、
sheetの名前が「*重要*」なら…、
If Active.Sheet.name.value like "*重要*" Then
なのでしょうか?←やってみたがダメでした。(;o;)
すみません、どーすれば良いでしょうか…(ToT)
以前は、IF~ = "絶対重要"で、動いていました。
=(イコール)を用いたのが私には分り易いのですが、
ダメなのでしょうか?
度々で、本当に申し訳がないです。
宜しくお願いいたします。m(__)m
No.1
- 回答日時:
セルでの入力だと
=IF(COUNTIF(A1, "*B*"),"OK","NO")
でいいと思います
VBAだと
result=IIF(Range("A1").value like "*B*","OK","NO")
でいいと思います。
BLUEPIXY様、早々の返信、
ありがとうございました。m(__)m
1週間悩んで、ここでも質問が低レベル過ぎて、
なかなか返信が無いものと思っていたので、
本当に、”感謝”です。m(__)m
あつかましいのですが、VBA版がresult=…と
有るのですが、私には理解不能です。すみません。
できれば、IF~~として貰えないでしょうか?
とある工程を実行後の動作で、実際にはセルは
使わないのです。(~_~;)(変更が僕には…、)
御時間が有る時で結構です。
宜しくお願い致します。m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 12:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/01/06 08:39
- 日本語 読解力の質問です(Excel含む) 12 2022/08/02 13:25
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) EXCELでリターンキーが押されたらそのセルに特定の文字を表示したいのですが。 2 2022/08/07 12:58
- Excel(エクセル) Excelについて▶あるセルに文字を入力すると、別のセルに色がつく(条件付き書式) 1 2022/03/27 16:43
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで指定した日付から過去の...
-
ExcelVBAを使って、値...
-
DataGridViewの各セル幅を自由...
-
VBAでセル同士を比較して色付け
-
Excel VBA、 別ブックの最終行...
-
特定のセルが空白だったら、そ...
-
エクセルvbaで、別シートの最下...
-
VBAでセルをクリックする回...
-
【Excel VBA】指定行以降をクリ...
-
【VBA】シート上の複数のチェッ...
-
Excel vbaについて知恵もしくは...
-
DataGridViewで列、行、セルの選択
-
Excel VBAで、 ヘッダーへのセ...
-
【VBA】指定したセルと同じ値で...
-
VBA ユーザーフォーム ボタンク...
-
スプレッドシートの数値列に対...
-
i=cells(Rows.Count, 1)とi=cel...
-
結合セルを含む列の非表示方法
-
Excel VBA 計算式を代入するには?
-
ExcelのVBAで数字と文字列をマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
特定のセルが空白だったら、そ...
-
VBA実行後に元のセルに戻りたい
-
【Excel VBA】指定行以降をクリ...
-
任意フォルダから画像をすべて...
-
【Excel】指定したセルの名前で...
-
VBAでセルをクリックする回...
-
【VBA】シート上の複数のチェッ...
-
EXCELのVBA-フィルタ抽出後の...
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
”戻り値”が変化したときに、マ...
-
ExcelのVBAで数字と文字列をマ...
-
VBA ユーザーフォーム ボタンク...
-
Excel VBA マクロ ある列の最終...
-
Excel VBA、 別ブックの最終行...
おすすめ情報