[[20060403174712]] 『「全角を半角に」英数とスペースのみ行いたいので』(トト) ページの最後に飛ぶ

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

 

『「全角を半角に」英数とスペースのみ行いたいのですが…』(トト)

こちらで検索していくつか出てきましたが、ドンピシャがなかったので新規に質問させていただきます。

英数記号カタカナひらがな漢字全部交ざった表があります。
その表中の英数とスペースを半角に変換したいのですが、ASC関数はもちろんダメでした。

申し訳ありませんが、方法を教えてください。
よろしくお願いします。


 数式で処理するものを参考までに書いてみます。

 A1に元データとしますと、
 B1に
 =IF(ISERR(-MID($A1,COLUMN(A1),1))
 *EXACT(UPPER(MID($A1,COLUMN(A1),1)),LOWER(MID($A1,COLUMN(A1),1))),
 MID($A1,COLUMN(A1),1),ASC(MID($A1,COLUMN(A1),1)))

 C1に=B1&IF(ISERR(-MID($A1,COLUMN(B1),1))
 *EXACT(UPPER(MID($A1,COLUMN(B1),1)),LOWER(MID($A1,COLUMN(B1),1))),
 MID($A1,COLUMN(B1),1),ASC(MID($A1,COLUMN(B1),1)))
 として、C1をIV1までフィルドラッグ。というものです。                 (LOOKUP)

LOOKUPさん、ありがとうございます!
こんなに長い数式は初めて見ました!
試しにやってみたらできました。

しかしながら表が大きいのです。
A〜J列まであるうちの5列が変換したい該当列で、行にいたっては5万行あります。
また文字数もバラバラで、長いものだと100バイトを超えます。
多少の手作業(というのもなんだか変ですが…)は厭いませんが、LOOKUPさんの方法ではちょっと厳しいです。
もう少しお知恵をお貸しくださいませm(_ _)m
(トト)


 VBA処理だとこうなりますかね?
Alt+F11を押して、標準モジュールを挿入し、下記コードを貼り付け。
変換したい範囲を選択し、Alt+F8を押して、「トト」を実行。
コピーでお試し下さい。
'----
Sub トト()
Dim myStr As String, convStr As String, sentStr As String
Dim C As Range
Dim i As Long
For Each C In Selection
sentStr = ""
myStr = C.Value
For i = 1 To Len(myStr)
Select Case Asc(StrConv(Mid(myStr, i, 1), vbNarrow))
Case 32, 48 To 57, 65 To 90, 97 To 122
convStr = StrConv(Mid(myStr, i, 1), vbNarrow)
Case Else
convStr = Mid(myStr, i, 1)
End Select
sentStr = sentStr & convStr
Next
C.Value = sentStr
Next
End Sub
'(ROUGE)

できましたヽ(゜▽゜*)乂(*゜▽゜)ノ
ROUGEさん、ありがとうございました!(トト)

コメント返信:

[ 一覧(最新更新順) ]


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