
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
ANo.1です、手の内と、テストデータ(機密情報は適当にいじって)を開示していただかないと、遠回りするだけです。
結局、最初の回答に戻っています。ユーザー関数で行う事例です。
Function extractAlphabet(targetString As String) As Variant
'下行の[]内の半角スペースを削除すると、一続きの半角英文字列のみがヒットします。
extractAlphabet = subMatchWord(targetString, "([A-z ]+)")
End Function
Private Function subMatchWord(targetString As String, matchString As String) As Variant
Dim regEX As Variant
Dim Matches As Variant
Dim match As Variant
Set regEX = CreateObject("VBScript.RegExp")
regEX.MultiLine = False
regEX.Pattern = matchString
regEX.ignorecase = True
regEX.Global = False
On Error GoTo errorHandle
Set Matches = regEX.Execute(targetString)
If Matches(0).subMatches.Count > 0 Then
subMatchWord = Matches(0).subMatches.Item(0)
Else
subMatchWord = CVErr(xlErrNA)
End If
Set Matches = Nothing
Set regEX = Nothing
Exit Function
errorHandle:
subMatchWord = CVErr(xlErrNA)
End Function
実用上は、データが2万もあれば、上記関数を使ってVBAでループを回して処理すべきです。
試験結果は下記の通り。
..............................................A.......................................B
..1...............................元データ.................半角英字抽出
..2...................hogecompanyltd...............hogecompanyltd
..3...............hoge company ltd...........hoge company ltd
..4..昔々あるところにお爺さんと...............................#N/A
..5................昔々an old manと......................an old man
..6.................................................=extractAlphabet(A5)
1行目は見出し
6行目はこんな式が入っていますという意味です。
データ的にはあのような企業情報が続くだけなのですが・・・。
VBAはちょっとわからないので、社内の人に見せて聞いてみます。
度々、ありがとうございました。
No.4
- 回答日時:
A No.1です。
何をされたいのか、いまいち分かりません。
英語の社名というのは hoge company ltd.とかいうパターンなのでしょうか。とすると、半角スペースがあって当たり前のような気がしますが、半角スペースをみつけてどうされたいのでしょうか。
この回答への補足
半角スペースを見つけたいわけではありません。
データクリーニングをしていると、書いたんですが、
hoge company ltd.が正しい形として、データではhogecompanyltd.となっている可能性があります。
なので、英語部分だけをみつけて、入力を統一したいのです。
No.3
- 回答日時:
A No.1です。
手の内を明かされる気はなさそうなので、2万セル×文字数だけループを回して判定しては如何。人間がやるよりは速いでしょう、きっと。
<テスト用データ> 1行目は単なる見出し、A2が試験用データです。
..............................A...............B...............C......................D
..1......テストデータ.........................1文字........JIS CODE
..2..Azヲ゜ァヶぁん亜........................................=CODE(C2)
亜の後ろには黒の変種の漢字が入れてありますが、表示されない...
<1セルを処理するコード>
Sub test()
Dim i As Long
Dim buf As String
Dim jisCode As Long
buf = ActiveSheet.Range("a2").Value
For i = 1 To Len(buf)
ActiveSheet.Range("c2").Value = Mid(buf, i, 1)
jisCode = ActiveSheet.Range("d2").Value
Select Case jisCode
Case 65 To 122
Debug.Print "半角英"
Case 166 To 223
Debug.Print "半角カナ"
Case 9505 To 9590
Debug.Print "全角カナ"
Case 9249 To 9331
Debug.Print "全角かな"
Case 12321 To 38700
Debug.Print "漢字"
End Select
Next i
End Sub
<処理結果>
半角英
半角英
半角カナ
半角カナ
全角カナ
全角カナ
全角かな
全角かな
漢字
漢字
※1文字ずつ、C2に入れて処理しているのは、ワークシート関数のcodeにあたる物が、VBAの関数になさそうなのと、VBAのASCWで、UNICODEにすると、正負が入り交じって、自分の手には負えないためです。全てコードでやりたければ、参考URLをご覧下さい。
参考URL:http://www.ken3.org/vba/backno/vba079.html
仕事中でしたので、返答遅れてしまいました。
申し訳ありません。
データは
1行目が数字
2行目が項目
3行目からデータ
になります。
イメージ的にはこんな感じです↓
会社名 郵便番号 都道府県 市区郡 番地 電話番号・・・
00会社 146-8909 東京都 葛飾区 7-4-00 03-4347-0000・・
この会社名の中に、英語の社名などの社名の中に半角スペースが入る場合があり、簡単にわかる方法はないかと思い投稿いたしました。
エクセル初心者ですので、難しいことはわからないのですが、HP見てみます。
ありがとうございました。
No.1
- 回答日時:
正規表現で、{一-龠}が漢字※、{ァ-ヶ}がカタカナ、{ぁ-ん}がひらがなといった感じで抽出できる可能性もありますが、どの様なデータなのか、例をある程度のバリエーションで見せていただかないと、イメージが湧きませんし、試行もできません。
正規表現については、「正規表現」もしくは「VBA 正規表現」でWEB検索していただくと、沢山情報が得られます。
ご参考まで。
※JISの第2、第3水準なのか、コード表にはもっと後ろまで難しい漢字が並んでおります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELで、漢字のみ抽出する式を教えてください。 6 2022/04/27 14:40
- Excel(エクセル) EXCELでの文字・数字入力の基本について教えてください。 2 2023/05/29 23:17
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Windows 10 Windows10の回復環境 2 2023/02/03 19:13
- Visual Basic(VBA) SQLで抽出 4 2022/12/04 13:55
- 日本語 漢字ひらがなカタカナと使える日本人って凄いですよね、というか日本語って凄いですよね? 中国とか韓国語 2 2022/11/11 09:22
- 日本語 明治以前は漢字の次にカタカナが一般的で格上だったんですか? 1 2022/06/03 15:47
- Excel(エクセル) Excelの1つのセルにそれぞれ文字+数字が入力されていて、 数字のみ抽出して合計したいです。(合計 4 2023/03/16 23:44
- Excel(エクセル) エクセルで#以降の文字を取得したい 1 2022/03/28 13:14
- その他(言語学・言語) 言語 世界一難しい日本のひらがな・カタカナ・漢字・ローマ字は子供の時に習得出来たのですが 『方言や読 4 2022/04/14 21:49
このQ&Aを見た人はこんなQ&Aも見ています
-
EXCELで、漢字のみ抽出する式を教えてください。
Excel(エクセル)
-
エクセルでセルの中身が漢字かどうか識別する方法は?
Excel(エクセル)
-
Excel2003のセルから漢字のセルだけ取り出す方法
その他(Microsoft Office)
-
-
4
Excelでカタカナ・ひらがな・英数字の抽出
その他(Microsoft Office)
-
5
エクセル ひらがなの文字を抽出
Excel(エクセル)
-
6
エクセル、関数でセル内の半角カタカナ漢字、を分けて他のセルへ表示する方法
Excel(エクセル)
-
7
Excel2007でカタカナの文字のみを抽出、表示するには?
その他(Microsoft Office)
-
8
文字列から英数字のみを抽出する関数
Excel(エクセル)
-
9
日本語(ひらがな・カタカナ・漢字)があるか判断する
Excel(エクセル)
-
10
Excelにて、カタカナだけのセルを抜き出す方法は?
Excel(エクセル)
-
11
EXCELで、セル内の半角カナのみを削除する関数
Excel(エクセル)
-
12
全角・半角混在の文字列から半角文字のみ取り出す
Excel(エクセル)
-
13
エクセル・1つのセルに入った漢字(カナ)の分け方
Excel(エクセル)
-
14
エクセルでセルのデータがカタカナかどうか調べたい
Excel(エクセル)
-
15
エクセル 指定した記号や平仮名、漢字などをカウントしていく関数
Excel(エクセル)
-
16
エクセルの関数で、記号などを抽出もしくは削除したい
Excel(エクセル)
-
17
エクセル条件付書式について
Excel(エクセル)
-
18
Excelの中に全角ひらがな、漢字、半角英数が混在しいる場合一括で変換するのではなく、半角英数字が混
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel関数「COUNTIF」で”文字”...
-
全角括弧と全角読点の間隔を狭...
-
文字の入力で横バー上段、中断...
-
エクセルのCOUNTIFが正しくカウ...
-
全角英数文字が嫌われる理由を...
-
メッセージボックスで1025文字...
-
Replace関数は文字数の制限ある...
-
VBAで英数字入力チェックしたい。
-
半角記号、全角記号を含む正規...
-
VBScriptである文字列に半角文...
-
エクセルでデータを30バイト...
-
全角半角変換 C++/CLI
-
PHPでMySQLに入力した半角スペ...
-
1文字のStrConv fromUnicode
-
2つ以上の連続する空白文字を除去
-
文字列中の両丸括弧を取り除くV...
-
日本語(2byte文字)の判別方法...
-
@ezweb.ne.jpについて教えて下...
-
入力データ「英数字」と「アン...
-
秀丸マクロについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の入力で横バー上段、中断...
-
メッセージボックスで1025文字...
-
全角括弧と全角読点の間隔を狭...
-
エクセルのCOUNTIFが正しくカウ...
-
Excel関数「COUNTIF」で”文字”...
-
VBAで英数字入力チェックしたい。
-
XMLのタグ名の禁則文字
-
全角英数文字が嫌われる理由を...
-
半角記号、全角記号を含む正規...
-
2つ以上の連続する空白文字を除去
-
Replace関数は文字数の制限ある...
-
記号は半角と全角どちらがよい...
-
エクセルでの漢字、カタカナ、...
-
特定の文字を簡単な操作で半角...
-
SEO タイトルに「&」を使用
-
パソコンで全角、半角文字の切...
-
文字列中の両丸括弧を取り除くV...
-
Excel2002 一桁数字だけ全角に置換
-
IT企業の技術屋にとって全角英...
-
Phonetic関数を利用して文章中...
おすすめ情報