[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『化学式の数値を一括で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列に化学式があり、
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
(たなか) 2019/01/24(木) 17:03
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.