[[20190124143337]] 『化学式の数値を一括でweb用に』(たなか) ページの最後に飛ぶ

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

 

『化学式の数値を一括でweb用に』(たなか)

いつもお世話になっております。
以前[[20181109170313]] にて、
化学式の数値を一括で下付にするコードを教えて頂きました。

今回は、化学式をWEBに掲載したく、該当する数値を<sub>と</sub>で挟む場合は、
どういうコードになるのか教えてください。

    Dim r As Range, m As Object
    With CreateObject("VBScript.RegExp") 
        .Global = True
        .Pattern = "([A-Za-z]+|\))\d+"
        For Each r In Range("a1", Range("a" & Rows.Count).End(xlUp))
            For Each m In .Execute(r.Value)
                If m.submatches(0) <> "pH" And m.submatches(0) <> ")" Then
                    r.Characters(m.firstindex + Len(m.submatches(0)) + 1, _
                    m.Length - Len(m.submatches(0))).Font.Subscript = True
          '↑この2行が変わるんですかね…?
                End If
            Next
        Next
    End With

よろしくお願いしますm(__)m

< 使用 Excel:Excel2013、使用 OS:Windows7 >


A列そのものをいじるとなると結構大変というか思いつかないので、
上手い方法がほかにあるか分かりませんがとりあえず。

A列に化学式があり、
B列にWEB用の文字列としてタグを付け加えた文字列を生成する場合の例という事で……

 Sub 化学式作成_seiya式_改良版2()
    Dim r As Range, m As Object
    Dim i As Integer
    Dim ret As String
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "([A-Za-z]+|\))\d+"
        For Each r In Range("A1", Range("A" & Rows.Count).End(xlUp))
            For Each m In .Execute(r.Value)
                If m.submatches(0) <> "pH" And m.submatches(0) <> ")" Then
                    r.Characters(m.firstindex + Len(m.submatches(0)) + 1, _
                    m.Length - Len(m.submatches(0))).Font.Subscript = True
                End If
            Next
        Next
    End With
    For Each r In Range("A1", Range("A" & Rows.Count).End(xlUp))
        ret = ""
        For i = 1 To r.Characters.Count
            If r.Characters(i, 1).Font.Subscript Then
                ret = ret & "<sub>" & r.Characters(i, 1).Text & "</sub>"
            Else
                ret = ret & r.Characters(i, 1).Text
            End If
        Next
        r.Offset(, 1).Value = ret
    Next
End Sub

(ご近所PG) 2019/01/24(木) 16:40


わー!B列に<sub></sub>に挟まれたものができました!
ローカルウィンドウを見ると、1文字ずつ下付かどうかを見るコードなんですねー。
すごい…!!
ご近所PGさん、ありがとうございました!

(たなか) 2019/01/24(木) 17:03


コメント返信:

[ 一覧(最新更新順) ]


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