[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルに数字を入力すると、税込表示に・・・』(キリキ)
会社の同僚から、質問がでて答えられず計算用のセルを増やして対応したのですが 毎月の売上予算を税込金額で出したいそうです。 ですが、計算式を作るのが面倒なので、直接入力をすると税込金額に・・・ なんてことは可能なのでしょうか?
A B C D 1 日付 昨年 予算 2 1 111 100と入力すると105 3 2 152 150と入力すると157 4 3 249 250と入力すると262 5 4 99 100と入力すると105
自分はD列に計算式を入れることしか思いつきませんでした。 他に方法はあるのでしょうか? (キリキ)
面倒ですか?慣れですかね、これも。 予算入力後、 D2へ =ROUNDDOWN(C2*1.05,0) を入力、D2を選択。 フィルハンドル(選択枠の右下の小さい■)をダブルクリック C列を選択して非表示にして完成。 (KAMIYA)
>直接入力をすると税込金額に・・・ なんてことは可能なのでしょうか? ちなみにこの質問には「マクロを使用すれば可能」が答え。 【参考】 [[20030306153207]] 『ある列に税抜き金額入力で税込み価格表示』(名無し155) (KAMIYA)
横からすみません・・・。 KAMIYAさん、上記の参照先のマクロはうまく動作しますか? 私のほうで試しにやってみたら、何もないセルをクリックしただけでクリックした上のセルに0が出ますし、 数字が入っているセルの下のセルをクリックしたら上のセルの数値が変わります。 また文字の入っているセルの下のセルをクリックしたらエラーになります。 これは、On Error Resume Nextで抜けれますけど。 いろいろ試してみましたが、上手くいく構文が思い浮かびませんでした(^_^A; (川野鮎太郎)
KAMIYAさん、早速のレスありがとうございます。 KAMIYAさんの言う通り、関数を使用して無事終了しているのですが 同僚はEXCELが分からないため、計算式などを誤って消してしまうのが怖いだけらしいです 保護を掛けることを勧めたので問題は解決したと思うのですが 川野さんもおっしゃっていますがマクロでうまく解決する方法があれば 是非、教えてくださいm(..)m (キリキ)
いや、私もKAMIYAさんの言うように関数で別セルを使う方をお勧めします。 EXCELの一般機能がうまく使えなければ、マクロを使って入力したときの不具合も あとで修正できないでしょうし・・・ 私は試しにやってうまく動かなかったから、聞いてみただけです(^_^A; (川野鮎太郎)
こんばんわ。 横から失礼します。
[[20030306153207]]『ある列に税抜き金額入力で税込み価格表示』(名無し155)
のマクロには疑問があります。
ActiveCellの1行「上」の値に *1.05 するので、値が無ければ 0 を返すと思います。 私自身も、「これはマクロじゃないと・・」の場合にだけ書くようにしています。
あまりお勧めいたしませんが、参考までにご希望はこういうことかと? C列に数値が入力されたとき、その数値に *1.05 します。
VBE を起動して、該当シートのモジュールに貼り付けて使用してください。 (jindon)
Private Sub Worksheet_Change(ByVal Target As Range) With Target If (.Column <> 3) + (IsNumeric(Target) = False) Then Exit Sub Application.EnableEvents = False .Value = Int(.Value * 1.05) Application.EnableEvents = True End With End Sub
(川野鮎太郎)さん、(jindon)さん、フォローありがとうございます。 手直しは必要かなー、と思いつつ、検証なしでリンクを載せてしまったのは 私の不手際でした。 すみません。<m(_ _)m> ご指摘の通りSelectionChangeイベントではまずいですね。 選択セルを変更していくだけで、計算済みのセルがまた計算されてしまいます。 マクロでの解決を促しておいてこういうのは反則ですが、 私は「セルに値入力」>「計算」>「計算結果をそのセルへ出力」 は不可能ではないにしても、あまりお勧めできません。 ・入力した数値はそのまま残しておく ・計算結果は別のセルで返す が基本ではないかと思います。 つまり、関数でやるのが本道であると思うのですが、 ネタを振った責任だけ取ります。 下記はC列へ数値が入力された場合、D列へ税込(円以下切捨)の金額を 計算します。 (これなら計算式を消す心配はない・・・計算結果を消してしまっても C列へ入力すればまた計算できるというイミで。) Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count <> 1 Or _ Target.Column <> 3 Or _ Not (IsNumeric(Target)) Then Exit Sub
Application.EnableEvents = False If Val(Target) = 0 Then Target.Offset(0, 1).Value = "" Else Target.Offset(0, 1).Value = WorksheetFunction.RoundDown(Target * 1.05, 0) End If Application.EnableEvents = True End Sub (KAMIYA)
KAMIYAさん 川野鮎太郎さん jindonさん、ありがとうございます。 KAMIYAさんの言う通り、基本は関数と言うことですよね(^^;) それにしても、マクロってやっぱりすごいですね。 がんばって、勉強していきたいと思います。 (キリキ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.