
No.2ベストアンサー
- 回答日時:
今、戻ってきました。
>Unicode「00A0」があり
私が想定していたもの、ずばりでした。すぐに思いつけばよかったものの、急いでいたものですみません。
そこで、二種類作ってみました。
一番目は、#1の改良型
二番目は、VBScript の正規表現検索です。
.Pattern = "[" & ch1 & ch2 & ch3 & "][" & ch4 & ch5 & "]"
このカギカッコの中に、スペースと思われるものや、読点(、)と思われるものがあれば、削除してくれます。[ ]の中は、一つだけ選びます。もし2つだったら、[]{2} と中括弧を使います。
ch1 =Chr(&H...) -SJIS用, ChrW はChr"(&H...) Unicode用として代入すれば、正規表現で読んでくれます。
> If Len(c.Value) - 2 = Matches(0).FirstIndex Then
これは、終わりから数えて2番目の位置を示すということです。
この正規表現は、外部オブジェクトですから、多少、反応が鈍いような気がします。
VBAがわかる方なら、パターンだけですから、一見複雑なようでも、決まりきった内容ですから、すぐに分かるはずです。
'//
Sub del_spce_marks2()
Dim c As Range
Dim buf As String
For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))
If Len(c.Value) > 2 Then
buf = Replace(c.Value, ChrW(160), Space(1))
If StrComp(Right(buf, 2), Space(1) & "、", vbTextCompare) = 0 Then
c.Value = Mid(buf, 1, Len(buf) - 2)
buf = ""
End If
End If
Next c
End Sub
'//
Sub del_REspce_marks()
Dim c As Range
Dim Re As Object
Dim Matches As Object
Dim buf As String
Dim ch1, ch2, ch3, ch4, ch5
ch1 = Chr(&H8140): ch2 = Chr(&H20): ch3 = ChrW(&HA0)
ch4 = Chr(&H8141): ch5 = Chr(&HA4)
Set Re = CreateObject("VBScript.RegExp")
With Re
.Pattern = "[" & ch1 & ch2 & ch3 & "][" & ch4 & ch5 & "]"
.Global = False
For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))
Set Matches = .Execute(c.Value)
If Matches.Count > 0 Then
If Len(c.Value) - 2 = Matches(0).FirstIndex Then
buf = Replace(c.Value, Matches(0), "", , 1)
c.Value = buf
buf = ""
End If
End If
Next c
End With
Set Re = Nothing
End Sub
'//
このコードは、何度もやっていますが、どうも忘れてしまいます。
なお、昔のコードをみると、c.Value =Application.Clear(c.Value)として、バイナリコード(正確に言うと、エスケープシーケンス)を削除していたりします。残っているとエラーの元になりますから、もしも、気になったらお使いになることをおすすめします。
できました!
他の条件もあり、昨日途中まで作業していたので、一つ目の方を使用しました。
キレイに削除できました。
ありがとうございました!
No.3
- 回答日時:
VBAでなくとも
置換ではだめなのでしょうか?
置換の他にも条件がいくつかあり、一度に処理をしたいのと、今後も同じ要件が出るはずなので、VBAを希望しました。
ご回答ありがとうございました。
No.1
- 回答日時:
理屈どおりなら、以下のように、TextCompare モードで検索し、削除します。
Range("A1", Cells(Rows.Count, "A").End(xlUp)) ここは、Selection に変えても良いです。A列で書かれていることを意味します。
でも、本当にこれでよいのか、何かバリエーションがありそうな気がします。例えば、スペースは、種類がいくつもあります。SJIS以外のなどでも違う種類のスペースがあります。バックアップを取って試してみてください。また、半角の「、(読点)」は、「,」に置き換わることもあります。今の段階では、そこまで考えていません。
'//
Sub del_spce_marks()
Dim c As Range
For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))
If Len(c.Value) > 2 Then
If StrComp(Right(c.Value, 2), Space(1) & "、", vbTextCompare) = 0 Then
c.Value = Mid(c.Value, 1, Len(c.Value) - 2)
End If
End If
Next c
End Sub
ありがとうございます。
通常の「スペース+、」削除できました。
しかし、ご察しの通りUnicode「00A0」があり、そのスペースは、削除できませんでした。
「、」も混ざっていましたか、何とか削除することができました。
前進できたので本当にありがたく、感謝いたします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) 指定した文字から指定した文字のスペースまでを削除するVBAの構文について 6 2022/07/24 22:20
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Visual Basic(VBA) エクセルVBAのコードについて 2 2022/08/10 21:49
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Visual Basic(VBA) 列を指定して値を左から5文字にそろえる 1 2022/06/10 20:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
なぜ2-ブタノールと2-メチル-2-...
-
単斜硫黄から斜方硫黄への変化
-
ルービックキューブと群論
-
白モツの煮込みで出る苦い汁
-
[NMR]ダブルダブレットとトリプ...
-
ヘプタン異性体の構造式
-
フタル酸だけ特別にイソ、テレ...
-
指示薬のpKaについて
-
高校の化学についてです。 SO2...
-
東北自動車道、黒磯板室インタ...
-
キノイド構造ってなんですか?
-
塩酸-マグネシウム反応
-
赤く光る蛍はいますか?
-
エタンの示性式はなぜCH₃CH₃な...
-
ベンジル位とは何なのでしょうか?
-
これなんで2-メチル2-プロパノ...
-
ベンゼン管を入力する方法
-
グルタミン酸ナトリウムとPHの問題
-
ナフトールの配向性
-
スルホサリチル酸によるタンパ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ギ酸エチルと酢酸メチルは構造...
-
ペンテンの構造異性体
-
LinuxでのC言語通信プログラム...
-
アルカン は異性体の数がブタン...
-
エタノールの三重点は?
-
構造異性体について
-
エクセル VBAで、文末の指定文...
-
テトラフロオロベンゼンに異性...
-
ガーシーchって最高に面白いで...
-
高校有機化学について 示性式の...
-
C4H10Oの構造式7種類を教えてく...
-
化学の問題です C4H10O の分子...
-
解離性記憶障害
-
ヘプタン異性体の構造式
-
単斜硫黄から斜方硫黄への変化
-
白モツの煮込みで出る苦い汁
-
水酸基価?
-
「元」ですか?「基」ですか?
-
エンコードとは?
-
高校の化学についてです。 SO2...
おすすめ情報