
いつもお世話になります
今、日本語から英文への文字置き換えをしているのですが
英文に日本語文の中にある上付き文字記号を加えると上付き文字にならないので
苦労しています(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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Excel(エクセル) Excelについて▶あるセルに文字を入力すると、別のセルに色がつく(条件付き書式) 1 2022/03/27 16:43
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Excel(エクセル) エクセルの日付から年末尾2桁と月を1月をA~Lに変換したい 3 2022/08/08 10:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
word の文字入力 文字が青色に...
-
DXFをAutoCADで開くと文字位置...
-
漢字を出したい!
-
PDFまたはTIFFファイルに文字を...
-
Shift_JISで表示できて、UTF-8...
-
「~が言うには」の違う言い方
-
SQLについて質問です。 SELECT ...
-
“髙”という字の出し方教えてく...
-
AUTO-CADで文字の太さを太くす...
-
PDF elementで白文字?というか...
-
TeraPadで見えない文字...
-
エクセルの数式で教えてください。
-
単語登録で・・
-
Word で項目番号 ○の21 から...
-
イラストレーターで文字が半角...
-
PayPayの本人確認で マイナンバ...
-
Word文書に、チェックマーク(...
-
AutoCAD 複数の文字を1つの文字...
-
エクセルで月をABC表記したい
-
ノーツ送信する際の多言語mine...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
word の文字入力 文字が青色に...
-
漢字を出したい!
-
AUTO-CADで文字の太さを太くす...
-
“髙”という字の出し方教えてく...
-
Thunderbirdの添付ファイル名に...
-
Word で項目番号 ○の21 から...
-
DXFをAutoCADで開くと文字位置...
-
エクセルの「IF」の結果の文...
-
Shift_JISで表示できて、UTF-8...
-
ファイル名で最後に認識される文字
-
「~が言うには」の違う言い方
-
ノーツ送信する際の多言語mine...
-
PDFまたはTIFFファイルに文字を...
-
WORDで印刷しない注釈を入れる(...
-
イラストレーターで文字が半角...
-
AutoCAD 複数の文字を1つの文字...
-
ワードの囲い文字?
-
至急お願いします!! Wordで、...
-
フォトショップで文字入力をす...
-
エクセルで月をABC表記したい
おすすめ情報