Excel VBA 質問スレッド №2048 (解決済)

セルに値が入力されると自動計算

投稿者 : グレイ     投稿日時 : 2024/11/26(Tue) 00:50:53     OS : Windows 11     EXCEL : Excel 2019
あるセルに数値を入力すると、関係するセルの数値を引き、結果を表示する方法を探しています。
(例)E7セルに8と入力すると、関係するセルE15の値2と、セルE21の値1を引いた、5と表示。
画像参照:https://ibb.co/8XVPKrs

(目的)
画像のように各従業員、全ての日付に同じ処理をするようにしたい。
並び順が不規則でも同名はセルを関連づけるように。
今後、従業員が増えたり減ったりしたときの行(従業員)の追加や削除にも対応できる。

このような状況に対応する方法ありますでしょうか?
VBA以外でも方法あればお聞きできると幸いです。
説明不足、伝わりにくいこ所ありますが何卒よろしくお願いします。

スポンサーリンク
[返信 1] Re : セルに値が入力されると自動計算
投稿者 : てらてら     投稿日時 : 2024/11/26(Tue) 06:49:20
こんにちは。

入力後、自動で結果を出力させたいという事であれば、できないと思います。
セル内に、数式マクロやユーザー定義関数を入れておいても、入力の際セル値が入力値に変わってしまいます。

ただ、全てを入力し終えた後で、マクロを実行して全体を計算するという方法なら実現できます。
この場合でも、マクロを2回実行すると更に計算されておかしなことになります。

やはり、計算対象となる値は、どこかに保持しておくのが順当なやり方ではないでしょうか?
入力値で計算結果で書き換えられる方法があったとしても、私ならそういう方法は取りません。

[返信 2] Re : セルに値が入力されると自動計算
投稿者 : ピロリ     投稿日時 : 2024/11/26(Tue) 21:04:23
下のようにフォーマット変更して、勤務時間の入力セルと計算結果の出力セルを分けてはいかがでしょう?

   [A]  [B]   [C]  [D] [E] ・・・
[ 7] 青果 田中太郎 勤務時間 予定  8
[ 8]              実績  8
[ 9]         事務時間 予定  2
[10]              実績  2
[11]         掃除時間 予定  1
[12]              実績  2
[13]         作業時間 予定 =IF(E7="","",E7-E9-E11)  ← 演算式で計算させる
[14]              実績 =IF(E8="","",E8-E10-E12)  ← 演算式で計算させる
[15] 鮮魚 山田次郎 勤務時間 予定  8
 :

もし、フォーマット変更やセル分けが出来ないということであれば、読み捨てて下さい。

[返信 3] Re : セルに値が入力されると自動計算
投稿者 : グレイ     投稿日時 : 2024/11/30(Sat) 23:39:21
てらてら様。ピロリ様。
お返事遅くなりました。
いただいた考え方と方法で対応していきます。
相談させてもらってよかったです。
ありがとうございました。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2024-12-07 23:12:47 )
タイトルとURLをコピーしました