
いつもお世話になります
今、日本語から英文への文字置き換えをしているのですが
英文に日本語文の中にある上付き文字記号を加えると上付き文字にならないので
苦労しています(m2:mの2乗)
そこで上付き文字を見つけて環境依存文字のしたいので下記のように判定を掛けましたが
エラーが出て上手く行きません
If Cells(1, 1).Character(9, 1).Font.Superscript = True Then
テストプログラムで9番目の文字を上付き文字にしています
そこでご相談ですが
セル内の文字の中にある上付き文字を判定したいのですが、その方法についてお分かりでしたら教えてください
以上、よろしくお願い申し上げます
No.1ベストアンサー
- 回答日時:
Character(9, 1)ではなく
Characters(9, 1)
ではないですか。
No.2
- 回答日時:
お久しぶりです。
いつも、難しい質問が多いので、だんだん付いていけなくなっています。
ご挨拶だけというのはできませんので、ちょっとレスをしておきます。
(COMアドインのご質問は答えられずにスルーしてしまいました。失礼しました。
Excel DNAを使いこなせれば、もう少しアドバイスができたのですが、今は無理です。)
解答は出ていますので、BAは不要なのですが、これは、面白いマクロになるのかもしれないと思い作ってみました。
環境依存文字というのは、Unicodeのことでしょうか。
調べてみると、上付き文字側が、順に並んでいないので、ややこしい気がします。
いままで、こういうものは考え方ことがありませんでした。
やってみると、わざわざ書式の上付き文字・下付き文字の検証よりも、パターンで、アルファベット+数字の組み合わせで、変換しても良さそうな気がしました。
'//
Option Explicit
Sub ReplSuperScript()
Dim RegEx As Object
Dim Ms As Object, m As Object
Dim i As Variant, j As Variant, c As Range, k As Long
Dim buf As Variant
Dim spScr As Variant
上付き文字は、飛び飛びの不揃いの文字コードです。
spScr = Array("2070", "00B9", "00B2", "00B3", "2074", "2075", "2076", "2077", "2078", "2079")
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
.Global = True: .IgnoreCase = True: .MultiLine = True
.Pattern = "\w(\d+)"
For Each c In Selection '対象セルをマウスで選択
buf = c.Value
Set Ms = .Execute(buf)
If Ms.Count > 0 Then
For Each m In Ms
i = m.FirstIndex + 2
'' a = Mid(buf, i, 1) '検査用
If c.Characters(i, 1).Font.Superscript Then
'上付き側
j = m.subMatches(0)
For k = 1 To Len(j)
Mid(buf, i + k - 1, 1) = ChrW("&H" & spScr(Val(Mid(j, k, 1))))
Next k
ElseIf c.Characters(i, 1).Font.Subscript Then
'下付き側
j = m.subMatches(0)
For k = 1 To Len(j)
Mid(buf, i + k - 1, 1) = ChrW("&H2080" + Val(Mid(j, k, 1)))
Next k
End If
Next
c.Value = buf
End If
Next
End With
End Sub
'//
グルコースの化学式

こんにちは、いつもありがとうございます
プログラムありがとうございます
参考にさせて頂きます
これからもよろしくお願い申し上げます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
word の文字入力 文字が青色に...
-
エクセルの「IF」の結果の文...
-
Word で項目番号 ○の21 から...
-
PDFまたはTIFFファイルに文字を...
-
AUTO-CADで文字の太さを太くす...
-
“髙”という字の出し方教えてく...
-
CASE MARKの表記方法について
-
teraterm の文字色の変更について
-
至急お願いします!! Wordで、...
-
文字種(漢字・ひらがな・カタ...
-
アルファベットの「o」にスラ...
-
Shift_JISで表示できて、UTF-8...
-
ノーツ送信する際の多言語mine...
-
OCRとスキャナ
-
イラストレーターで文字が半角...
-
DXFをAutoCADで開くと文字位置...
-
IME-2000の変換候補一覧について
-
AutoCAD 複数の文字を1つの文字...
-
8ポイントより小さい文字が打ち...
-
Thunderbirdの添付ファイル名に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
word の文字入力 文字が青色に...
-
AUTO-CADで文字の太さを太くす...
-
DXFをAutoCADで開くと文字位置...
-
Shift_JISで表示できて、UTF-8...
-
漢字を出したい!
-
Thunderbirdの添付ファイル名に...
-
“髙”という字の出し方教えてく...
-
PDFまたはTIFFファイルに文字を...
-
ノーツ送信する際の多言語mine...
-
ファイル名で最後に認識される文字
-
Word で項目番号 ○の21 から...
-
PDF elementで白文字?というか...
-
エクセルの「IF」の結果の文...
-
Word文書に、チェックマーク(...
-
至急お願いします!! Wordで、...
-
『unicode形式の文字を含んでい...
-
エクセルの1セル内で入力できる...
-
「~が言うには」の違う言い方
-
「てぃ」という文字をローマ字...
-
OCRとスキャナ
おすすめ情報