みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL2003 条件つきでユーザー書式

B列に数字を入力してもらうリストを作っています。
セルの書式設定→表示形式→ユーザー定義で、自動的に単位を表示させるようにしようとしたのですが、
 セルA1に0が入っている場合、B列に表示される単位を"人"
 セルA1に1が入っている場合、B列で表示される単位を"チーム"
と、同シート内の他セルを参考に、表示単位を変えたいのですが、出来るのでしょうか?

[=A1=0]###"人";[=A1=1]###"チーム";### では無効なようですし、[=0]###"人";[=1]###"チーム";### だと、そのセルに入力された数値が条件になってしまうので、使えませんでした。

投稿日時 - 2009-01-08 11:57:48

QNo.4613279

すぐに回答ほしいです

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

2007なら条件付き書式設定で可能ですが、2003はVBAでないと不可能です。
参考にVBAサンプルを追記しますのでお試し下さい。
(1)仮にSheet1として、sheet1タブを右クリック→コード表示→VBE画面も右上側に以下のコードを貼り付け→alt+F4(VBE終了)
  因みに書式切り分けは1=??人、2=??チームとしています
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
Select Case Target.Value
Case 1
Worksheets("sheet1").Columns("B:B").NumberFormat = "##0人"
Case 2
Worksheets("sheet1").Columns("B:B").NumberFormat = "##0チーム"
End Select
End Sub

投稿日時 - 2009-01-08 13:33:47

お礼

回答ありがとうございます。
導入方法も詳しく書いてくれたおかげで、無事やりたい動作が出来るようになりました。
マクロにはあまり詳しくなかったのですが、これを機に勉強してみたいと思います。

投稿日時 - 2009-01-08 15:11:10

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

できません

ユーザー書式はそのセルに入力されたデータを基準に行われますから
他のセル(A1セル)の値を基準にして書式を変えることはできません

B列には数値だけ
C列に単位を IF関数で切り換えて表示する
…ようにしてはいかがですか?

投稿日時 - 2009-01-08 12:13:21

お礼

回答ありがとうございます。
隣接行にもデータが入るので、できれば現状のままでと思いユーザー設定書式を試していたのですが、2003では一筋縄ではいかないようですね。

投稿日時 - 2009-01-08 15:09:10

あなたにオススメの質問