[[20171122212819]] 『VBAで漢字抽出について』(エイコ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAで漢字抽出について』(エイコ)

[[20050322201151]]で回答のあった
コードについて、このコードを大変重宝させていただいております。
(回答者の(SoulMan)様ありがとうございます。)

ハイフン(全角、半角)と括弧(全角半角、墨付き括弧)
が混じっているとエラーが出ます。
エラーを回避出来るようにするには、どのようにコードを足せばよろしいでしょうか?
お願いいたします。

Option Explicit
Sub てすと()
Dim MyA As Variant
Dim MyStr As String
Dim i As Long, j As Long
With Sheets("Sheet1")

    MyA = .Range("A1", .Range("A65536").End(xlUp)).Value
    ReDim MyAry(1 To UBound(MyA, 1), 1 To 1)
    For i = 1 To UBound(MyA, 1)
    MyStr = MyA(i, 1)
        For j = 1 To Len(MyStr)
            If StrConv(StrConv(Mid(MyA(i, 1), j, 1), vbKatakana), vbWide) = _
                StrConv(Mid(MyStr, j, 1), vbNarrow) Then
                MyAry(i, 1) = MyAry(i, 1) & Trim(Mid(MyStr, j, 1))
            End If
        Next
    Next
    .Range("B1").Resize(UBound(MyA, 1), UBound(MyA, 2)).Value = MyAry
End With
End Sub

< 使用 Excel:Excel2013、使用 OS:Windows10 >


>ハイフン(全角、半角)と括弧(全角半角、墨付き括弧)
>が混じっているとエラーが出ます。

例えば、どんなデータでしょうか?

(マナ) 2017/11/22(水) 22:02


正規表現が使えるなら
re.Pattern = "[一-龠 ]+" というパターンで漢字(全角空白含む)が取り出せますね。

(γ) 2017/11/22(水) 22:05


(マナ)様、(Y)様、ご回答ありがとうございました。

エラーは
13、型が一致しません。
でした。

マナ様のご質問にご返信すべく、テストデータを作ってみて上記マクロを実行したところ、
エラーが起きずそのまま漢字のみ抽出出来ました。

エラーが起きた環境に問題があったのでしょうか?
会社のPCで、win10、エクセル2013、32bit、OSは64bitでした。
当方のPCはwin7、エクセル2007、32bit、OSは64bitでした。

もしくは、会社の元データの書式の問題かもしれません。
申し訳ありません。元データの書式はきちんと確認をしておりませんでした。
一応、元データを全てコピーした後、値貼り付けをしてみましたエラーが出ました。

Y様にご回答いただいたPatternプロパティをコードの中に組込みました。
テストデータで問題なく実行できました。ありがとうございます!

週明けにテストを行ってみて、データ型を確認し、
それでも疑問点がありましたらまたご相談に上がります。

お二人とも、どうもありがとうございました。

(エイコ) 2017/11/23(木) 12:15


パターンをセットするだけじゃ無いんだけど。
どんなコードなんですか?成功したのは。
参考までに教えて下さい。
(γ) 2017/11/23(木) 17:05

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.