Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12409 / 76734 ←次へ | 前へ→

【69847】Re:書式を保持したまま置換したい
発言  n  - 11/9/3(土) 12:31 -

引用なし
パスワード
   失礼..
置換内容によっては無限Loopでした...orz
※箇所の修正or追加必要です。

Sub test2()
  Dim ws As Worksheet
  Dim tb As TextBox
  Dim chk As String
  Dim rep As String
  Dim n  As Long
  Dim rn As Long '※
  Dim p  As Long
  Dim i  As Long '※
  Dim x(8)

  chk = "うえお"
  rep = "こんにちは"
  n = Len(chk) - 1
  rn = Len(rep) '※

  For Each ws In Worksheets
    For Each tb In ws.TextBoxes
      With tb
        i = 1
        Do
          p = InStr(i, .Text, chk) '※
          If p = 0 Then Exit Do
          If n > 0 Then
            .Characters(p + 1, n).Insert rep
            .Characters(p, 1).Delete
          Else
            With .Characters(p, 1).Font
              x(0) = .Name
              x(1) = .Size
              x(2) = .Bold
              x(3) = .Italic
              x(4) = .Shadow
              x(5) = .FontStyle
              x(6) = .ColorIndex
              x(7) = .OutlineFont
              x(8) = .Strikethrough
            End With
            .Characters(p, 1).Insert rep
            With .Characters(p, Len(rep)).Font
              .Name = x(0)
              .Size = x(1)
              .Bold = x(2)
              .Italic = x(3)
              .Shadow = x(4)
              .FontStyle = x(5)
              .ColorIndex = x(6)
              .OutlineFont = x(7)
              .Strikethrough = x(8)
            End With
          End If
          i = p + rn '※
        Loop
      End With
    Next
  Next
End Sub


2007以降なら楽なんですけどね。

chk = "うえお"
rep = "こんにちは"
n = Len(chk)
rn = Len(rep)
For Each ws In Worksheets
  For Each tb In ws.TextBoxes
    i = 1
    Do
      p = InStr(i, tb.Text, chk)
      If p = 0 Then Exit Do
      tb.Characters(p, n).Insert rep
      i = p + rn
    Loop
  Next
Next
7 hits

【69827】書式を保持したまま置換したい めー 11/9/1(木) 17:57 質問
【69829】Re:書式を保持したまま置換したい UO3 11/9/2(金) 10:15 発言
【69831】Re:書式を保持したまま置換したい めー 11/9/2(金) 12:15 発言
【69833】Re:書式を保持したまま置換したい sasa 11/9/2(金) 13:09 回答
【69834】Re:書式を保持したまま置換したい めー 11/9/2(金) 13:27 発言
【69843】Re:書式を保持したまま置換したい n 11/9/2(金) 23:32 発言
【69847】Re:書式を保持したまま置換したい n 11/9/3(土) 12:31 発言
【69858】Re:書式を保持したまま置換したい めー 11/9/5(月) 18:19 お礼
【69849】Re:書式を保持したまま置換したい sasa 11/9/3(土) 16:50 回答
【69859】Re:書式を保持したまま置換したい めー 11/9/5(月) 18:24 お礼

12409 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free