• ベストアンサー

化学式を簡単に入力する方法

エクセル2000で化学式を大量に入力したいのですが、 現在はH2Oなどの数字部分をいちいち下付きに変更しています。 (かなり面倒です) これをもっと簡単に入力する方法はないでしょうか? 出来れば「水」と入力して「H2O」と表示させたいのですが、 単語登録、VLOOKUP関数、入力規則(リスト)、オートコレクト 以上のものは全部試してみたのですが、 いずれも一部分だけの下付きは出来ませんでした。 セルをコピーすると出来るんでしょうけど、 他に方法があったら教えて下さい。 よろしくお願いします。

noname#8940
noname#8940

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答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

noname#8940
質問者

お礼

お礼が遅れて申し訳ありません。 何度もわがままな質問に回答いただきありがとうございます。 姉が大変喜んでおりました。 マクロっておもしろいですね♪

その他の回答 (4)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

>もう一つ質問なんですが、「ショートカットキーに割り当てる」 >とはどのようにしたらいいんでしょうか?? マクロを登録したらシートに戻って、ツール→マクロ→マクロ で出てくるダイアログボックスでマクロを選択し、オプションボタンを押すとマクロオプションダイアログボックスが出てきます。Ctrl+の右のテキストボックスに半角アルファベット(例えばZ)を入力します。 これでこのマクロは Ctrl+Shifh+Z キーで起動します。 CtrlとShifhキーを押しておいてZキーを押す要領です。

noname#8940
質問者

補足

対応出来ない化学式があったので補足させてください。 Mg(NO3)2・6H2O       ↑    ↑ この数字は下付きに変換されるのですが、 ( )の後ろの2が変換されません。 こういう形式の化学式は他にもたくさんありますので、 マクロで一度に変換できれば、、、と思いまして。。。 可能であればお願いできないでしょうか? ショートカットキーの解説ありがとうございました♪  

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

No.1のmaruru01です。 Vectorで検索したら、下記のURLのソフトがありました。 ただし、シェアウェアソフトなので私は試してません。 mimi1504さんの使用意図に沿うかどうかもわかりませんが、 参考までに。

参考URL:
http://www.vector.co.jp/soft/win95/writing/se086514.html
noname#8940
質問者

お礼

こんな便利なものがあったんですね(*^0^*) 実はこれを必要としているのは姉なんです。 さっそく報告します! ありがとうございました。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答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

noname#8940
質問者

補足

感激です!痛快です!どうもありがとうござました。 実はこれを必要としているのは私の姉なので、 すべての化学式に対応出来るかどうか、試してもらいます。 もしダメだったら、またよろしくお願いします。 もう一つ質問なんですが、「ショートカットキーに割り当てる」 とはどのようにしたらいいんでしょうか??

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

IME2000の単語登録は出来ますよ。 Windows2000の場合、スタートメニュー→プログラム→アクセサリ→システムツールの中に「文字コード表」があります。 その中に上付きと下付きの数字や+-などの記号があります。(少なくともゴシックと明朝には) で、例えば下付きの"2"を、コピーする文字のところで選択して、その前後に"H"と"O"を付けてコピーし、IMEの単語登録を呼び出せば語句の欄に"H下付き2O"が入るので、読みに"みず"とでも入れて登録すればOKです。 上付きもあるのでイオン式もOKです。 あとは、必要なものを片っ端から登録していきます。 ちなみに、ExcelはOKですが、アプリケーションによっては文字化けします。 とりあえず、こんな力技しか思いつきません。 ひょっとすると、IME対応の化学式辞書のようなものがあるかも知れません。 Vectorなどのダウンロードサイトをのぞいてみては? では。

noname#8940
質問者

お礼

アドバイスどうもありがとうございます。 教えて下さった文字コード表から下付きの数字を探したのですが、 見つけられませんでした。(^^;) Windows2000じゃないからでしょうか・・・

関連するQ&A

  • エクセルで原子記号等を入力する方法

    CO2とかH2O等の数字の部分だけを下付きの小さな文字にする場合、数字だけドラッグし、「書式」→「セル」から「下付き」にしてサイズを小さくすることはできますが、沢山そういう文字を入力するとき、いちいち書式で変換するのは、大変です。もっと楽に入力する方法はありますか?

  • 関数(DGET)のファイルを作成しました、検索セルに英数字を入力するのですが・・・

    エクセルで関数(DGET)の検索をするファイルを作ったのですが、検索セル(英数字を入力するセル)に英数字を入力する際、小文字で入力しても大文字に変わるようにしたいのです。 何か方法はありませんか?オートコレクトでひとつづつ指定すれば可能にはなるのですが・・・データーが多くて困っています。 よろしくお願いします。

  • エクセルで、セルにハイフンを入力したいのですが…

    EXcel2000について質問です。 セルの文頭に  --総務部 のようにハイフンを 入力したいのですが、--F2総務部 や #NAME と 表示されています。 文字列にしても、オートコレクトを外しても 直りません。 これは関数でしょうか?対処方法を教えて下さい。 よろしくお願いいたします。

  • 一発で登録した単語を入力する方法を教えて下さい。

    ワードやエクセルで作業している時に、何種類かの同じ様な言葉をたびたび使用することがあるので、 一発で単語を入力できるようなコマンド設定をしたいと思っています。 こんなコマンド設定ありますか・・・? オートコレクトや辞書登録ではなく、一発で入力できるものを希望です。たしか、ファンクションキー使った方法があったような・・・

  • VLOOKUPでセルに#N/Aが出るのを防ぐには?

    最初のセルにVLOOKUP関数を入れて、必要数のセル分だけ下にオートフィルで引張っています。 すると検索値がまだ未入力のセルにずらっと#N/Aが並んでしまいます。 見ずらいので、このエラー値が出ないようにするにはどうすれば良いでしょうか?

  • エクセルでの名前(苗字だけ入力)・検索方法教えて下さい

    本来オートフィルターの機能を使えば十分OKなのですが、 うちのパートさんには少々リスト等の字が小さすぎて見えないみたいなんです、そこで別のシートに=VLOOKUP関数を使って検索する事にしたのですが(字の大きさが変えられるため)、すべての名前を入力しないと検索できません。 これを何とか、苗字部分だけの入力で検索できるようにしたいのですが・・・。出来ますでしょうか。やっぱりVBAを使わないと無理ですか? オートフィルターの字を大きくできれば、その方法でもOKなのですが。 よろしくお願い致します。

  • Wordで、イタリア語入力するには?

    ミルです。 Word2002を使っています。 このソフトでイタリア語の単語集をタイプして いますが、発音記号やら、いろんな所にシングルクオーテーション が入ってとっても入力が大変です。 今はいちいちルビで記号を入れ、オートコレクトに 登録しているんですが大変で… このソフトでイタリア語を使えるようにするには どうしたらいいのでしょうか? イタリア語を使えるようにすれば、単語として 出すことが出来るのでしょうか? どなたか…  お願いします。

  • ワードのオートコレクトで再度入力すると機能しない。

    オートコレクト機能を使って、文字を入力した後にBackSpaceで削除してから、再度単語を入力してもオートコレクトの働きをしません。 これは何故なのでしょうか? この場合はどう、対処したらよいのでしょう? 友人に説明したいのですが、どう説明していいか分かりません。 どなたかよろしくお願いします。

  • Excel 入力規則から表の自動表示

    Excel2007で入力規則を使いリストを作成したのですが、その選んだ項目に合わせて自動的に同Sheet内に表を表示させたいんです。 文字ならIF関数とVLOOKUP関数を組み合わせたりINDIRECT関数を使ったりすれば可能かと思いますが、表の場合はどうしたらよいのでしょうか。画像化?VBA? できれば合わせて背景等の書式も参照させたいです。ちなみに入力規則のセルでは条件付きで設定しました。 ずっと格闘しています。教えてください!!

  • エクセルで入力規則の設定のあるセルの関数変更

    エクセルで入力規則の設定(不正なデータが入力されたらエラーメッセージを表示するにチェック) のしてあるセルに入力されている関数を変更する場合、 一度入力規則は解除しなくてはいけないのでしょうか。 私の場合、セルを選択して数式バーで変更をかけてエンターキーを押すと、 変更した関数も不正なデータととられてエラーメッセージが出てしまいます。 関数を少し変更したいとき、いちいち入力規則を解除するのはめんどくさいので、何とかならないのでしょうか。 よろしくお願いいたします。

専門家に質問してみよう