- ベストアンサー
Excel 上付き(下付き)文字のみの置換方法
Excelにおいて、上付きもしくは下付きの文字のみの置換方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
一応、#2の補足にある、"T3-133"という文字列の"T3"の"3"のみ上付きはクリアしましたが マクロは希望していないようなので、マクロでできるよの報告のみで失礼します Sub test() Dim i As Long, ii As Integer Dim a As String a = "T3" For i = 1 To Range("a65536").End(xlUp).Row If InStr(Cells(i, 1).Value, a) > 0 Then ii = InStr(Cells(i, 1).Value, a) + 1 Cells(i, 1).Characters(Start:=ii, Length:=1).Font.Superscript = True End If Next i End Sub
その他の回答 (4)
- rukuku
- ベストアンサー率42% (401/933)
こんばんは まずはExcelのバージョンを教えてください。 Excelの2003では、書式を指定した置換も付いているのですが、「書式だけ」はうまくいきません。 Wordならば、2000でも上付文字だけ書式を変換することができます。 2回のコピー&ぺーーストでデータが崩れないようならば、いったんWordにコピーして置換を行う手もあると思います。
お礼
回答ありがとうございます。 Office XP Standardを使用しています。 Wordで出来ることは確認しました!! しかし、例えば、"T3-133"のT付きの"3"だけ上付きにしたい場合、"3"のみの置換を行うと"133"のほうにも影響を及ぼし、上手くいきません。 対策があれば教えてください。
- imogasi
- ベストアンサー率27% (4737/17069)
書式の検索が出来るようになったのは最近のバージョン。 それもフォントやパターンの関係。 上付きは検索ダイアロウグ画面でプレビューで上付きになるのに引っかからないようだ。2007などではどうかな。 ーーー VBAではActiveSheetに対し 標準モジュールに Sub test01() For Each cl In Range("a1:D10") For i = 1 To Len(cl) If cl.Characters(Start:=i, Length:=1).Font.Superscript = True Then MsgBox cl.Address & "の" & i & "文字目" End If Next i Next End Sub で上付き文字のセルと文字位置がわかる。 上記はRange("a1:D10")の範囲限定。広げるのはコードを変えて可能。
お礼
回答ありがとうございます。 マクロであれば出来るのでしょうか!? マクロを使用したことがないので理解できませんが。。 他の(マクロを使用しない)方法があれば教えて下さい。
- hige_082
- ベストアンサー率50% (379/747)
マクロではダメ? A列の文字列に上付きもしくは下付きの文字があれば 上付きは上付きのまま[A]に 下付きは下付きのまま[B]へ それぞれ置換する Sub test() Dim i As Long, ii As Integer For i = 1 To Range("a65536").End(xlUp).Row For ii = 1 To Len(Cells(i, 1).Value) With Cells(i, 1).Characters(Start:=ii, Length:=1) If .Font.Superscript = True Then .Caption = "A" ElseIf .Font.Subscript = True Then .Caption = "B" End If End With Next ii Next i End Sub 参考までに
お礼
回答ありがとうございます。 マクロは使用したことがないですけど、、例えば"T3-133"という文字があった場合、"T"付きの"3"のみ上付き文字に換えたいという要望です。 回答の内容で上記のようなことは可能でしょうか。
上付き・下付き文字は検索・置換できないようです。
お礼
回答ありがとうございます。 やっぱりそうですかぁ。。 機能を複合した方法でもいいんですけど。 わかれば教えてください。
お礼
回答ありがとうございます。 マクロを勉強して試してみます!!