[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『行末にあるテキストを自動で検索して半角→全角にしたい』(ちゃんず)
エクセル業務の効率化のため勉強中のど素人です。
エクセル内で、
(A)あいうえお
(B)かきくけこ
(C)さしすせそ(A-B)
(D)たちつてと(B+C)
(E)なにぬねの(D)
というデータがあります。
行末にある()内の英字と記号のみ半角にする作業を自動化で行いたいのですが
どのように検索すれば良いのか分かりません。
正規表現を使えば検索出来そうな気もしますが、
そもそもExcelは対応していないですよね…?
VBAを勉強中なので、VBAで出来ればありがたいのですが
もし正規表現のために外部ツールが必要となると
ややこしくなりそうで自分で自動化出来るのかも分かりません。
どなたかアドバイス等頂ければ助かります。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
Windowsバージョンなら使用できます。
Sub test() Dim r As Range With CreateObject("VBScript.RegExp") .Pattern = "(.+\()(.+?)(\))$" For Each r In Range("a1", Range("a" & Rows.Count).End(xlUp)) If .test(r.Value) Then r.Value = .Replace(r.Value, "$1" & StrConv(.Replace(r, "$2"), 8) & "$3") End If Next End With End Sub (seiya) 2019/08/03(土) 12:34
正規表現を使用するまでもないですね
Sub test2() Dim r As Range, x As Long For Each r In Range("a1", Range("a" & Rows.Count).End(xlUp)) If r.Value Like "*(*)" Then x = InStrRev(r.Value, "(") r.Value = Application.Replace(r.Value, x + 1, x - 1, StrConv(Mid$(r.Value, x + 1), 8)) End If Next End Sub (seiya) 2019/08/03(土) 12:52
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.