Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4301 / 13646 ツリー ←次へ | 前へ→

【57433】最後の一文字を上付きに はこだ 08/8/22(金) 16:12 質問[未読]
【57434】Re:最後の一文字を上付きに マクロマン 08/8/22(金) 16:39 発言[未読]
【57435】Re:最後の一文字を上付きに mizunu 08/8/22(金) 16:48 回答[未読]
【57436】Re:最後の一文字を上付きに はこだ 08/8/22(金) 17:06 質問[未読]
【57437】Re:最後の一文字を上付きに mizunu 08/8/22(金) 17:24 回答[未読]
【57438】Re:最後の一文字を上付きに はこだ 08/8/22(金) 17:32 お礼[未読]

【57433】最後の一文字を上付きに
質問  はこだ  - 08/8/22(金) 16:12 -

引用なし
パスワード
   数値の表記方法で、「3×103」の最後の3を上付きにして「10の3乗」という風に表記したいのですが、これをVBAで行うことは可能でしょうか?
数値はいろいろあるので、「最後の一文字を上付き」にする必要があるのですが、「最後の一文字」を選択、書式変更の仕方がわかりません。

よろしくお願いします。

【57434】Re:最後の一文字を上付きに
発言  マクロマン  - 08/8/22(金) 16:39 -

引用なし
パスワード
   数値のみの場合は最後の数値を上付きとはできないようですが、
文字列の場合はマクロの自動記録が参考になると思います。

まず手作業で最後の文字を上付きにする作業をマクロの自動記録
してみてください。

なお、文字列の切り出しは
Len
Left
Mid
Right
などが参考になると思います。

【57435】Re:最後の一文字を上付きに
回答  mizunu  - 08/8/22(金) 16:48 -

引用なし
パスワード
   >数値の表記方法で、「3×103」の最後の3を上付きにして「10の3乗」という風に表記したいのですが、これをVBAで行うことは可能でしょうか?

これを手操作してマクロの記録をとることが出来ます。
不要な箇所を削除したのが以下マクロです。

Sub Macro1()
 With ActiveCell.Characters(Start:=5).Font
  .Superscript = True
 End With
End Sub

Charactersメソッドの引数Startに、そのセルの文字数を与えれば出来上がりです。

【57436】Re:最後の一文字を上付きに
質問  はこだ  - 08/8/22(金) 17:06 -

引用なし
パスワード
   マクロマンさん、mizunu さん

アドバイスありがとうございます。
手作業から記録でやってみたのですが、文字数が変わると(たとえば14×103)うまくできませんでした。(左から5文字、という設定だからですよね?)

右からの文字数のカウントする方法を教えていただけますでしょうか?
よろしくお願いします。

【57437】Re:最後の一文字を上付きに
回答  mizunu  - 08/8/22(金) 17:24 -

引用なし
パスワード
   >手作業から記録でやってみたのですが、文字数が変わると(たとえば14×103)うまくできませんでした。(左から5文字、という設定だからですよね?)

だから、
Charactersメソッドの引数Startに、そのセルの文字数を与えれば...
と書いていますよ。
このへんの基本的なところが分からないとちょっと厳しいかも...
追々分かってくるとはおもいますが...
アクティブセルの最後の1文字を上付にするには以下のようなマクロになるでしょう。

Sub test1()
 With ActiveCell
  .Characters(Len(.Value)).Font.Superscript = True
 End With
End Sub

【57438】Re:最後の一文字を上付きに
お礼  はこだ  - 08/8/22(金) 17:32 -

引用なし
パスワード
   ▼mizunu さん:

回答ありがとうございました!
後ろから数えるのではなく、文字数を与えればよかったんですね・・・

4301 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free