
No.5ベストアンサー
- 回答日時:
指摘のあったパターンと『小文字、2桁以上の数値』を可能にしました。
少し書き方を変えています。次を下付きにする文字と解除する文字を分けていますので、追加・修正は容易かと思います。標準モジュールに貼り付けます。
Public Sub ShitaTukiMoji()
Dim rg As Range '選択した範囲
Dim L As Integer '文字カウンタ
Dim Shiki As String '化学式
Dim maeKigo As String '数値の前の文字は元素記号?
Dim sitatukiFlg As Boolean '下付にする、しない
For Each rg In Selection
Shiki = rg
For L = 2 To Len(Shiki)
'全角入力を考慮
maeKigo = StrConv(Mid(Shiki, L - 1, 1), vbNarrow)
Select Case maeKigo
Case "A" To "Z", "a" To "z", ")"
'この文字の次の数字は下付きにする
sitatukiFlg = True
Case "・", "(", "+", "-", "=", " "
'この文字の次の数字は下付きにしない
sitatukiFlg = False
End Select
If sitatukiFlg Then
If IsNumeric(Mid(Shiki, L, 1)) Then
'数字なら下付文字にする
rg.Characters(L, 1).Font.Subscript = True
End If
End If
Next
Next
End Sub
お礼が遅れて申し訳ありません。
何度もわがままな質問に回答いただきありがとうございます。
姉が大変喜んでおりました。
マクロっておもしろいですね♪
No.4
- 回答日時:
>もう一つ質問なんですが、「ショートカットキーに割り当てる」
>とはどのようにしたらいいんでしょうか??
マクロを登録したらシートに戻って、ツール→マクロ→マクロ で出てくるダイアログボックスでマクロを選択し、オプションボタンを押すとマクロオプションダイアログボックスが出てきます。Ctrl+の右のテキストボックスに半角アルファベット(例えばZ)を入力します。
これでこのマクロは Ctrl+Shifh+Z キーで起動します。
CtrlとShifhキーを押しておいてZキーを押す要領です。
この回答への補足
対応出来ない化学式があったので補足させてください。
Mg(NO3)2・6H2O
↑ ↑
この数字は下付きに変換されるのですが、
( )の後ろの2が変換されません。
こういう形式の化学式は他にもたくさんありますので、
マクロで一度に変換できれば、、、と思いまして。。。
可能であればお願いできないでしょうか?
ショートカットキーの解説ありがとうございました♪
No.3
- 回答日時:
No.1のmaruru01です。
Vectorで検索したら、下記のURLのソフトがありました。
ただし、シェアウェアソフトなので私は試してません。
mimi1504さんの使用意図に沿うかどうかもわかりませんが、
参考までに。
参考URL:http://www.vector.co.jp/soft/win95/writing/se086 …
こんな便利なものがあったんですね(*^0^*)
実はこれを必要としているのは姉なんです。
さっそく報告します!
ありがとうございました。
No.2
- 回答日時:
マクロを作ってみました。
最初は普通に入力し、下付文字にしたいセル(複数可)を選択して実行します。ショートカットキーに割り当てると早いと思います。
H2Oなら2文字目の2を、H2O+H2O=2H2O (?) は2H2Oの最初の2は下付きにはしないはずです。対応できない式があったら補足して下さい。化学式も忘れてしまいました・・・
ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入し、そこに貼り付けます。
'(Public Sub ~ End Sub の範囲です)
Public Sub ShitaTukiMoji()
Dim rg As Range '選択した範囲
Dim L As Integer '文字カウンタ
Dim Shiki As String '化学式
Dim maeKigo As String '数値の前の文字は元素記号?
For Each rg In Selection
Shiki = rg
For L = 2 To Len(Shiki)
maeKigo = StrConv(Mid(Shiki, L - 1, 1), vbNarrow) '全角入力を考慮
'分子の数、元素のみの数の場合は下付にしない。(例)2H2Oの最初の2など
If 65 <= Asc(maeKigo) And Asc(maeKigo) <= 90 Then
If IsNumeric(Mid(Shiki, L, 1)) Then
'数字なら下付文字にする
rg.Characters(L, 1).Font.Subscript = True
End If
End If
Next
Next
End Sub
この回答への補足
感激です!痛快です!どうもありがとうござました。
実はこれを必要としているのは私の姉なので、
すべての化学式に対応出来るかどうか、試してもらいます。
もしダメだったら、またよろしくお願いします。
もう一つ質問なんですが、「ショートカットキーに割り当てる」
とはどのようにしたらいいんでしょうか??
No.1
- 回答日時:
IME2000の単語登録は出来ますよ。
Windows2000の場合、スタートメニュー→プログラム→アクセサリ→システムツールの中に「文字コード表」があります。
その中に上付きと下付きの数字や+-などの記号があります。(少なくともゴシックと明朝には)
で、例えば下付きの"2"を、コピーする文字のところで選択して、その前後に"H"と"O"を付けてコピーし、IMEの単語登録を呼び出せば語句の欄に"H下付き2O"が入るので、読みに"みず"とでも入れて登録すればOKです。
上付きもあるのでイオン式もOKです。
あとは、必要なものを片っ端から登録していきます。
ちなみに、ExcelはOKですが、アプリケーションによっては文字化けします。
とりあえず、こんな力技しか思いつきません。
ひょっとすると、IME対応の化学式辞書のようなものがあるかも知れません。
Vectorなどのダウンロードサイトをのぞいてみては?
では。
アドバイスどうもありがとうございます。
教えて下さった文字コード表から下付きの数字を探したのですが、
見つけられませんでした。(^^;)
Windows2000じゃないからでしょうか・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Gmail メーラーのThunderbirdの送信機能に関する質問です 3 2022/07/10 10:58
- Excel(エクセル) 出勤簿の土、日、休日に色付けできない 2 2022/08/04 20:10
- Excel(エクセル) エクセルの複数条件作成方法について 2 2023/01/23 21:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Notionが、テーブルビューを一...
-
1MBでドレくらいの文章を書くこ...
-
Excel csvから開くと上限文字数...
-
作ったマクロを複数のシートで...
-
英文の字下げ、について
-
A4のレポート用紙1枚で2000文字...
-
フォトショップ6.0で文字が途中...
-
添削文字の色の変更(一太郎)
-
パソコン1分で100字打てるのは...
-
指定文字数で、行を折り返す設...
-
4個の文字a,b,b,cから3個の文字...
-
RIGHTの関数で、指定した文字数...
-
一太郎で「右寄せ」などが全体...
-
円に沿って左回りで文字を打ちたい
-
Photoshopで写真の下に文字を入...
-
この名前を教えてください
-
TeraPadで環境依存文字を入力す...
-
イラストレイターでの文字間隔
-
Illustrator ツール状に文字配...
-
ROMEO形式とISO形式とは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Notionが、テーブルビューを一...
-
1MBでドレくらいの文章を書くこ...
-
Excel csvから開くと上限文字数...
-
フォトショップで、スキャナ取...
-
スペイン語で「i」や「o」の上...
-
作ったマクロを複数のシートで...
-
A4のレポート用紙1枚で2000文字...
-
イラストレーターで、文字ツー...
-
ペイントでのテキスト修正
-
マル秘マークを入れたい
-
イラストレーターで、円に沿っ...
-
TeraPadで環境依存文字を入力す...
-
VB6 String型変数の文字数制限
-
イラレで縦方向のずれを揃える
-
Lotsu Notes7 同一文章内リン...
-
テキスト型は何故255文字ま...
-
英文の字下げ、について
-
添削文字の色の変更(一太郎)
-
10分間で1200文字打てる...
-
ドキュワークス文書にて、フリ...
おすすめ情報