advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 1215 for (Mook) (0.001 sec.)
[[20150204072424]]
#score: 9211
@digest: 1e192d2dea4e9153f01b18b04dd736c6
@id: 67203
@mdate: 2015-02-04T09:18:53Z
@size: 4917
@type: text/plain
#keywords: objregexp (29523), 度→[ (22494), smatch (22142), 成空 (15241), 度[? (15241), sout (14536), 白年 (14111), 成?? (13814), 成6 (12563), 平成 (11019), 度空 (8928), 成○○ (7905), 度[ (7498), 年度 (6873), 成? (6514), noro (6412), 成23 (5803), 置換 (3878), 字置 (3878), 換() (3645), 昭和 (2725), ロ文 (2241), 「平 (2207), ドカ (2198), ワイ (1991), 分一 (1871), 2015 (1750), 水) (1571), replace (1449), (no (1398), vbscript (1333), 換後 (1257)
『エクセルマクロ 文字置換のワイルドカードについて』(noro)
文字の置換を一括で行うために次のマクロを教えていただきました。 Sub 置換() Dim i As Long With ThisWorkbook.Sheets("sheet2") For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row Cells.Replace What:=.Range("A" & i).Value, Replacement:=.Range("B" & i).Value, _ LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _ SearchFormat:=False, ReplaceFormat:=False Next End With End Sub sheet2(例) A列 B列 検索 置換後 東京 日本 ここにワイルドカードを使用したいのですが、次の例の場合がうまくゆきません 平成23年度(置換前) [23](置換後) 平成6年度 [06] としたくて 平成??年度 [??] 平成?年度 [0?] としたところ [] [0] となってしまいました。 よい方法を教えてください。 < 使用 Excel:Excel2013、使用 OS:Windows7 > ---- そら置換先の文字がないからねぇ。 大量にあるならともかく、おそらく年度が入力されているセルなんて、1セルくらいでしょう? そこだけ置換ではなく、指定してあげればいかがでしょうか? (稲葉) 2015/02/04(水) 08:39 ---- ワイルドカードで検索した結果を、置換文字列で利用したいというのは Replace 関数では 難しそうです。 今回の例だけだったら、関数でもでできそうですけれど、VBAでやるのであれば正規表現が 利用できますので、なれないと敷居が高いかもしれませんが、挑戦してみてはどうでしょうか。 http://officetanaka.net/excel/vba/tips/tips38.htm http://www.happy2-island.com/vbs/cafe02/capter02104.shtml 平成を年にする例(一桁数字を二桁で0パディングしたい場合は、セルの書式でどうでしょうか)。 Sub Samle() Dim objRegExp Set objRegExp = CreateObject("VBScript.RegExp") With objRegExp .Pattern = "平成(¥d{1,2})年" .IgnoreCase = True .Global = True End With Dim r As Range Dim sMatch For Each r In Range("A1:A22") Set sMatch = objRegExp.Execute(r.Value) If sMatch.Count > 0 Then r.Value = sMatch(0).SubMatches(0) End If Next End Sub (Mook) 2015/02/04(水) 10:17 ---- シート内の色々な箇所にあるなら処理に時間が掛かり無理かもしれませんが、ある一定の 範囲に固まっているなら、その範囲を選択した状態で下記コードを実行なんて方法でも いいのかな。 Sub 置換2() Dim r As Range For Each r In Selection If r.Value <> "" Then r.Value = "[" & Format(Replace(Replace(r.Value, "平成", ""), "年度", ""), "00") & "]" Next End Sub (se_9) 2015/02/04(水) 10:28 ---- 検索条件を部分一致にして 平成 空白 年度 空白 で置換 かな? (seiya) 2015/02/04(水) 10:31 ---- ん、 平成6年度 → 平成06年度 にしたいってことだと思っていたのですが、違うのかな? (稲葉) 2015/02/04(水) 10:32 ---- 平成23年度→[23] 平成6年度 →[06] ではないのか? 追記 数値は固定ではなく書式文字で表せば 平成e年度→[ee] では? (ねむねむ) 2015/02/04(水) 10:35 ---- >平成??年度 [??] >平成?年度 [0?] ここちゃんと読んでませんでした 済みません。 (稲葉) 2015/02/04(水) 10:42 ---- 置換ではないのですが Sub 置換() Dim i As Long Dim j As Long Dim Sout As String Dim S As String Dim A As String With ThisWorkbook.Sheets("Sheet2") For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row A = .Range("A" & i).Value For j = 1 To Len(A) S = Mid$(A, j, 1) If S Like "[0-9]" Then Sout = Sout & S End If Next .Range("B" & i).Value = "[" & Format(Sout, "00") & "]" Sout = "" Next End With End Sub ともできる (デイト) 2015/02/04(水) 10:51 ---- みなさん色々ありがとうございました。 それぞれのコメントを勉強しながら工夫してみたいと思っています。 なお、置換は「平成」に限らず、「昭和」もあり、いずれも、年号のところは「[」で、「年度」の文字は「]」で数字のみを[]でくくることになります。(A列各行にすべて 入っています) (noro) 2015/02/04(水) 12:17 ---- 検索条件を部分一致にして 平成 空白 昭和 空白 年度 空白 で置換 セルの書式 "["00"]" (seiya) 2015/02/04(水) 12:30 ---- 上の追記で間に合わなかったのですが、「平成○○年」という場合はくくりません。あくまで「平成○○年度」のみを対象にしています。 どちらでもよければ単純に置換で「平成」を「[」にできるのですが。 (noro) 2015/02/04(水) 12:41 ---- それじゃ Sub test() Dim r As Range With CreateObject("VBScript.RegExp") .Pattern = "(平成|昭和|大正|明治)([¥d0-9]+)年度" For Each r In ActiveSheet.UsedRange If .test(r.Value) Then r.Value = Format$(.Replace(r.Value, "$2"), """[""00""]""") End If Next End With End Sub (seiya) 2015/02/04(水) 13:07 "00" を忘れてた... ---- seiyaさん。 ありがとうございました。 おかげさまでうまくゆきました。 (noro) 2015/02/04(水) 18:18 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201502/20150204072424.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97054 documents and 608267 words.

訪問者:カウンタValid HTML 4.01 Transitional