|
お疲れ様です。ひらごく7と申します。
上記、標題の件について質問があります。
1ブック内に複数シート(4シート:A〜D)が存在したとします。
2シート(C,D)内に置換対象文字列が複数存在(1セル内に複数及び、
複数行において)している場合の置換対象方法はどのようにすれば
よいでしょうか?
また、置換後の文字列については、太字、16ポイント、赤色で
置換させたいです。
1.置換対象文字列:あああ
1.置換後文字列:いいい
2.置換対象文字列:ううう
2.置換後文字列:えええ
Cシート:1行目2列目のセル内に「あああ」が2箇所存在
5行目2列目のセル内に「あああ」が1箇所存在
8行目2列目のセル内に「ううう」が3箇所存在
10行目2列目のセル内に「ううう」が1個所存在
Dシート:3行目2列目のセル内に「あああ」が2箇所存在
6行目2列目のセル内に「あああ」が1箇所存在
9行目2列目のセル内に「ううう」が3箇所存在
11行目2列目のセル内に「ううう」が1個所存在
現在、途中ではありますが以下のロジックを考えております。
'入力情報シート初期(開始行)項目取得
sMotoMoji = Worksheets(入力情報シート名).Cells(nInSheetGyo, nInSheetMotoRetsu)
sSakiMoji = Worksheets(入力情報シート名).Cells(nInSheetGyo, nInSheetSakiRetsu)
'可変部分入力マクロのシート数を数える
nToolSouShtCnt = ActiveWorkbook.Sheets.Count
'コピーシート数分ループ
Do While nToolSouShtCnt - nToolShtEndCnt > 0
Do While sMotoMoji <> "" And sSakiMoji <> ""
Sheets(Worksheets(nLoopCnt).Name) = Workbooks(ツール名).Sheets(nToolSouShtCnt)
'一括置換
Cells.Replace What:=sMotoMoji, Replacement:=sSakiMoji, LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
'シート内全検索文字分ループ
Do
'変換後文字列検索
Cells.Find(What:=sSakiMoji, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
Loop
'置換後文字列変更
With ActiveCell.Characters(Start:=n, Length:=m).Font
.Name = "MS ゴシック"
.FontStyle = "太字"
.Size = 14
.ColorIndex = 3 '赤
End With
nToolShtEndCnt = nToolShtEndCnt + 1
nLoopCnt = nLoopCnt + 1
nInSheetGyo = nInSheetGyo + 1
'入力情報シート初期(開始行)項目取得
sMotoMoji = Worksheets(入力情報シート名).Cells(nInSheetGyo, nInSheetMotoRetsu)
sSakiMoji = Worksheets(入力情報シート名).Cells(nInSheetGyo, nInSheetSakiRetsu)
Loop
Loop
|
|