[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件付き表示形式』(ごりら)
A B C D 顧客 金額 数量 総額 ABC \ 500 1,000 \ 500,000 XYZ $ 3.05 500 $ 1,525 LMN \ 625 700 \ 437,500 ABC \ 400 100 \ 40,000
以上のような表で、顧客の名前によってB欄の金額単位が変わるといったような形をとりたいのです。単位の表示は$、\、ユーロのいずれかです。また、D欄の数式がD2=B*Cなのですが、同じく表示形式をB欄の単位に沿って通貨表示したいのです。こんなこと出来るのでしょうか?教えてください。よろしくお願い致します。
多分、自動で表示形式の変更をするのはVBAでないと難しいと思います。 結果が文字列でもよければ、TEXT関数を使えばできますが。 (kenbou)
VBAならシートモジュールに Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Count > 1 Then Exit Sub If .Column <> 1 Then Exit Sub
Select Case .Value Case "ABC", "LMN" .Offset(, 1).NumberFormatLocal = "\#,##0;-\#,##0" .Offset(, 3).NumberFormatLocal = "\#,##0;-\#,##0" Case "XYZ" .Offset(, 1).NumberFormatLocal = "$#,##0.00;-$#,##0.00" .Offset(, 3).NumberFormatLocal = "$#,##0.00;-$#,##0.00" End Select End With End Sub
こんな感じで出来ます。(範囲は上の表としています。) (kenbou)
条件付書式では無理なので、作業列を使ってむりやり作ってみました。 金額欄と総額欄は文字列になるので、右揃えにして体裁を整えてください。
C D E F G H I J 1 顧客 入力 金額 数量 総額 顧客 単位 2 ABC 500 \ 500 1,000 \ 500,000 XYZ $ 3 XYZ 3.05 $ 3.05 500 $ 1525.00 DDZ € 4 DDZ 1.5 € 1.50 800 € 1200.00
D列を作業列として使い、実際の入力はここで行ないます。 I2:J10の範囲に、\以外の単位を使う顧客名と単位のリストを作っておきます。
E2に、=IF(ISNA(LOOKUP(C2,$I$2:$I$10)),TEXT(D2,"\ #,###"),TEXT(D2,VLOOKUP(C2,$I$2:$J$10,2,FALSE)&" 0.00")) G2に、=IF(ISNA(LOOKUP(C2,$I$2:$I$10)),TEXT(D2*F2,"\ #,###"),TEXT(D2*F2,VLOOKUP(C2,$I$2:$J$10,2,FALSE)&" 0.00"))
として、下にコピーするとこのようになります。 (sato)
C G I K 顧客 数量 単価 総額 ABC 1,000 \ 500 \ 500,000 XYZ 500 $ 3.05 $ 1,525 LMN 700 \ 625 \ 437,500 ABC 100 \ 400 \ 40,000
If .Column <> 1 Then Exit SubをIf .Column <> 3 Then Exit Sub に変更。各OFFSETを .Offset(, 1).NumberFormatLocal = "\#,##0;-\#,##0" .Offset(, 3).NumberFormatLocal = "\#,##0;-\#,##0" .Offset(, 1).NumberFormatLocal = "$#,##0.00;-$#,##0.00" .Offset(, 3).NumberFormatLocal = "$#,##0.00;-$#,##0.00" ↓ .Offset(, 6).NumberFormatLocal = "\#,##0;-\#,##0" .Offset(, 8).NumberFormatLocal = "\#,##0;-\#,##0" .Offset(, 6).NumberFormatLocal = "$#,##0.00;-$#,##0.00" .Offset(, 8).NumberFormatLocal = "$#,##0.00;-$#,##0.00" と変更でどうでしょう。 (kenbou)
If Target.Count > 1 Then Exit Sub If Target.Column <> 8 Then Exit Sub Select Case Target.Value Case "RED" colr = 3 Case "GOLD" colr = 44 Case "GREEN" colr = 10 Case "YELLOW" colr = 6 Case "BLACK" colr = 1 Case "BLUE" colr = 5 Case "CLEAR" colr = 24 Case Else colr = xlNone End Select Target.Font.ColorIndex = colr End Sub いうものが入っています。その下に先ほど教わったものを入れてみたのですが、だめでしょうか?また、エラーの原因があっているば、どのように改善したらよいでしょうか、ご指導ください。(ごりら)
同じイベントが2つは1つもモジュールには無理です。 まとめる必要があります。 ご自分で少しチャレンジしてみてください。 (kenbou)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.