• ベストアンサー

VBAでエクセルの入力規制のリストに書式設定?

エクセルのあるセルに 入力規制→リスト→任意の名前 を指定し、ドロップダウンできるようしています。 リストの内容が単位なので lb/ft3 kg/m3 g/cm3 となっているのですが3は乗数なので上付き表示したいのですがVBAなどで表示できますでしょうか。(ユーザが選択した段階で表示変更したい)

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

  • ベストアンサー
回答No.1

環境依存文字ですが 「りゅうべい」で変換するとか「3」で変換しても上付き文字ができました 入力規則のリストに使えました

obone
質問者

お礼

なりました。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

質問文では、何を聞いて居るかよくわからない。(入力規則でどういう選択肢を用意するのか?) 推測で (1)セルで上付きの文字列(?)が普通の文字で入力されたとき、VBAで上付き文字に出来るか (2)単位だけの選択単位を入力規則で選択できるか?その場合セルに入力する、数字の部分はどうなるのだろう。単位文字だけ別セルにセットするのか。文字列セットにあれば可能でしょう。 (3)含む数字の複数選択肢の中に単位で上付き文字にしたい値があるということか。 (4)数字を入れると単位付きの書式にするのか (5)文字列で単位をくっつけても良いのか 文字としては、その上付き文字フォントが拾えるかどうかが問題。IMEの文字辞書によって違うかもしれない ーー 上のどれでもないのだが。(4)の単位一律版。 参考に Private Sub Worksheet_Change(ByVal Target As Range) If Application.Intersect(Target, Range("A1:A5")) Is Nothing Then Exit Sub Else 'MsgBox "A" 'Target.NumberFormat = "#,###""m2""" '<--平米で変換 Target.NumberFormat = "#,###""?""" '<-ー立米付き書式をもくろんだもの。うまく行かない。 End If End Sub A1:A5セルで数字を入れると書式を平米や立米で表示しようとした。 平米は文字(フォント)があってうまくいったが、立米は変換候補には出るが、VBE画面で?になってしまう。 バージョンで違うかもしれないが。 ーー こういう単位はセルの値(の一部)にするのでなく、数値として、表示形式で単位つきに見えるほうが良かろうと思う。 (後々の計算などで使えるように) すると色々な単位を選ぶ場合は入力規則になじまないように思ったが。 ーー なお最後の文字を「上付き文字」にするのは 参考 Sub test01() l = Len(Range("A7")) Range("a7").Characters(Start:=l, Length:=1).Font.Superscript = True End Sub

obone
質問者

お礼

ロジック参考になりました。 質問内容が不正確で申し訳ありませんでした。

関連するQ&A