• ベストアンサー

全角アルファベットをも含むセルの抽出方法

Excelについて、セル範囲内のうち、全角アルファベットを1文字でも含むセルを抽出する方法を教えてください。 (例) A1 大阪600 A2 東京7K00 A3 愛知8F00 の場合、A2を抽出 全角のみが難しいようでしたら、半角を含んでもOKです。 よろしくお願いします。

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

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

(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)
回答No.4

B1: =IF(SUMPRODUCT(COUNTIF(A1,"*"&UNICHAR(ROW($65313:$65338))&"*")),ROW()) 下へコピペ。(作業列です。目障りなら非表示にして下さい。) C1: =IFERROR(INDEX(A:A,SMALL(B:B,ROW())),"") 下へコピペ。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.3

添付図参照(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)
回答No.1

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

関連するQ&A