[[20050124160525]] 『セル内の一部を下付きに置換』(なな) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セル内の一部を下付きに置換』(なな)

 セル内に「]W96」や「V96」「OD96」という記述があるのですが
 96の部分がそのままと下付きとが混在しているので、そこの部分だけ下付きに置換したいと考えています。

 検索する文字列:96(書式セットなし)→置換する文字列:96(下付き)
 で置換したところ、セル全体が下付きに置換されてしまいます。
 セル内の一部だけを書式込みで置換することは可能でしょうか?

Windows2000、Excel2002


 マクロでやってみました。
 下付きに置き返したいセルを選択して下記のコードを実行してみてください。
 
Option Explicit
Sub 下付き()
Dim MyRange As Range
Dim strSearch As String
Dim intPos As Integer, intLen As Integer
  
strSearch = Application.InputBox(prompt:="検索する文字列を入力してください。", Type:=2)
intLen = Len(strSearch)
    For Each MyRange In Selection
        intPos = InStr(1, MyRange.Text, strSearch, vbTextCompare)
        If intPos > 0 Then
            With MyRange.Characters(Start:=intPos, _
                Length:=intLen).Font
                .Subscript = True
            End With
        End If
    Next MyRange
End Sub

 (川野鮎太郎)


 もしも同じセルに置き換え対象が2つ以上あるようなケースの場合は以下をお試しください。
Sub 下付き()
Dim MyRange As Range
Dim strSearch As String
Dim i As Integer, intPos As Integer, intLen As Integer
  
strSearch = Application.InputBox(prompt:="検索する文字列を入力してください。", Type:=2)
intLen = Len(strSearch)
    For Each MyRange In Selection
        For i = 1 To Len(MyRange.Text)
            intPos = InStr(intPos + 1, MyRange.Text, strSearch, vbTextCompare)
            If intPos = 0 Then Exit For
                With MyRange.Characters(Start:=intPos, _
                    Length:=intLen).Font
                    .Subscript = True
                End With
        Next i
    Next MyRange
End Sub

 (川野鮎太郎)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.