• ベストアンサー

エクセルの書式について

エクセルの書式設定でよい方法があれば教えてください。 A1のセルにプルダウンで『日額』・『実費』のどちらかがせんたくできるようになっていて、 B1にはA1で選択したものに対応する数値を入力するのですが、 日額を選択すると『円』、実費は『万円』と、数値を入力したら表示されるように、 書式設定をしたいのですが、A1に入るものでそれぞれの書式を変更することは可能でしょうか? 今回は例のため、選択肢は2つですが、実際には5つほどあり、それぞれの単位がB列で2種類に分岐されます。 よろしくお願いします。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

関数では書式の設定はできそうもないので、VBAでやるしかないのでないか。 たとえば、Sheetのコードに、 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then If Range("A1") = "日額" Then Range("B1").NumberFormatLocal = "#,##0""円""" ElseIf Range("A1") = "実費" Then Range("B1").NumberFormatLocal = "#,##0""万円""" End If End If End Sub とでも入れておけば、書式が変わる。 でも、こういう書式にすると、合計なんか出すとき不便そうだが。

creopatra
質問者

お礼

ありがとうございます。 早速試してみます。 今回は合計などを使用しないので気にしていただいた点は 問題ないかと思います。

その他の回答 (2)

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

例データ A列ーD列 A列は入力規則のリストを設定、リストより選択で入力。 B列は手入力。C,D列は下記説明の方法(関数)で出るもの。 日額 1000 1000円 1,000円 実費 2000 2000万円 2,000万円 外貨 100 100ドル 100ドル 対応テーブルを作る I,J,K列に 日額 円 #,###円 実費 万円 #,###万円 外貨 ドル #,###ドル ーーーー C列 =B1&VLOOKUP(A1,$I$1:$J$3,2,FALSE) と入れて下方向に式を複写 ーー もうひとつの方法として D1セルに =TEXT(B1,VLOOKUP(A1,$I$1:$K$3,3,FALSE)) と入れて下方向に式を複写 ーー C,D列は右詰めに設定 値としては使えないのでB列の値を使う。 === 普通の書式でやりたいのだが、条件で分けることは、単純なもの(値の限られた少数の範囲で)しか出来ない。 VBAでも使わないと出来ない。

creopatra
質問者

お礼

ありがとうございます。 他のセルへの入力でこのようなことが出来るのですね!! 今後活かしたいと思います。

  • NIWAKA_0
  • ベストアンサー率28% (508/1790)
回答No.2

私だったら、C1セルにIFかLOOKUPで 単位を表示させます。

creopatra
質問者

お礼

ありがとうございます。 IFなども考えたのですが、 書式をどのように設定したらよいかがわからなかったので・・・

関連するQ&A