- ベストアンサー
全角アルファベットをも含むセルの抽出方法
Excelについて、セル範囲内のうち、全角アルファベットを1文字でも含むセルを抽出する方法を教えてください。 (例) A1 大阪600 A2 東京7K00 A3 愛知8F00 の場合、A2を抽出 全角のみが難しいようでしたら、半角を含んでもOKです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
(1)質問のことだけを取り上げた、エクセル操作は無いと思います。 (2)関数でも難しいでしょう。 残るはフリーソフトやVBAですが,文字種を問題にするのは、簡単でなない。 (3)各セルの全文字を繰り返し該当か、聞いて行く手もありますが、好みではない。 (4)残るは正規表現で全角英字を文字コードで捉える方法があると思う。 ーー (4)ではWEB記事を借用して、標準モジュールに Sub sample1() Dim i As Long Set re = CreateObject("VBScript.RegExp") Dim strIn As String Patternc = "[A-Z]" ’ここがポイント For i = 1 To 4 With re .Global = True '文字列全体を検索 .IgnoreCase = True '大文字小文字を区別しない .Pattern = Patternc If .test(Cells(i, "A")) Then Cells(i, "B") = "OK" Else Cells(i, "B") = "NG" End If End With Next End Sub で A1:A4に下記データ例で asA df1C qw23 12dfBG ーー 実行して A1;B4に asA OK df1C OK qw23 NG 12dfBG OK となり、B列が「OK」のA列行のデータには、全角英字があるということになる。
その他の回答 (3)
- SI299792
- ベストアンサー率47% (772/1616)
- msMike
- ベストアンサー率20% (364/1804)
添付図参照(Excel 2019) 1.式 =INDEX($A1:$A3,COLUMN(A1)) を入力したセル E2 を右方2列  ̄ ̄にオートフィル 2.範囲 E3:G54 を選択⇒Alt+MC⇒“上端行”以外のチェック外し⇒[OK] 3.式 =IFERROR(FIND($D3,E$2)>1,"") を入力したセル E3 を右方2列  ̄ ̄下方54行目までオートフィル 4.式 =IF(COUNTIF(INDIRECT(E2),TRUE),"あり","なし") を入力したセル  ̄ ̄E1 を右方2列にオートフィル 5.式 =IF(INDEX(E$1:G$1,MATCH(A1,E$2:G$2,0))="あり","○","×") を入  ̄ ̄力したセル B1 を下方2行目までオートフィル オ・シ・マ・イ
- NuboChan
- ベストアンサー率47% (785/1650)
VBAでの回答です。 Debug.Printステートメントを使用して、抽出したセルの値をイミディエイトウィンドウに表示しています。 このコードを必要に応じて変更して、どこに表示か指定してください。 (セルの抽出については記載がないので.......) Sub ExtractCells() Dim cell As Range For Each cell In Range("A1", Cells(Rows.count, 1).End(xlUp)) If cell.Value Like "*[A-Za-z]*" Then ' 全角アルファベットを含むかどうかを判定 Debug.Print cell.Value End If Next End Sub