Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2013)
手入力でするのか自動計算かを判定したい
投稿日時: 19/02/26 09:16:11
投稿者: nanodia

販売単価を入力しているのですが、
販売単価をそのまま入力するときもあれば
原価と粗利から計算して販売単価を出す場合があります。
 
これを1つのセルで行いたいと思うのですがVBAで自動で入力を判定
することはできるのでしょうか。
 
皆様の知恵をお借りしたいです。
 
   A    B    C
1販売単価  原価  粗利
2 125               ←販売単価に直接手入力
3 800    400  50%      ←原価/(1-粗利)を計算した値を販売単価に入力


回答
投稿日時: 19/02/26 10:31:09
投稿者: Suzu

こんにちは。
 
何を判定すれば良いのでしょうか。
その判定の結果を、どこにどのようになにを表示するのですか?

投稿日時: 19/02/26 10:46:05
投稿者: nanodia

コメントありがとうございます。
  
Aのセルに反映させたいと思っております。
ただ、Aのセルに数式を入れますと手入力したときに数式が消えます。
また、再利用するときにその数式が消えたことを忘れて入力ミスにつながるので
原価と粗利の価格が入力されたら販売単価のセルに計算された結果を反映させたいです。

回答
投稿日時: 19/02/26 15:25:43
投稿者: WinArrow
投稿者のウェブサイトに移動

nanodia さんの引用:
コメントありがとうございます。
  
Aのセルに反映させたいと思っております。
ただ、Aのセルに数式を入れますと手入力したときに数式が消えます。
また、再利用するときにその数式が消えたことを忘れて入力ミスにつながるので
原価と粗利の価格が入力されたら販売単価のセルに計算された結果を反映させたいです。

 
何を言っているのか
まったく回答になっていない。
この説明が他人に理解できると思いますか?

回答
投稿日時: 19/02/26 15:29:40
投稿者: WinArrow
投稿者のウェブサイトに移動

追加の質問
 
マクロで対応する場合、
そのマクロを起動するタイミングが必要です。
 
どのようなタイミングでマクロを起動するのかも
説明してください。

回答
投稿日時: 19/02/26 16:21:27
投稿者: Suzu

WinArrow さんの引用:
何を言っているのか
まったく回答になっていない。
この説明が他人に理解できると思いますか?

 
まぁ、なんとなくは判りますよね。
 
マクロは起動するときには、ある契機が必要です。
 
判りやすいのは、コマンドボタンにマクロを割り当て、ボタンクリック時にマクロを実行します。
 
ただ、質問者さんの言い方だと、
 
B列または、C列の セルの値が変わったときに
「BxCの計算結果を、Aに代入」
A列の値が変わった時には何もしない
 
と読めます。
 
【特定のセル範囲が変更されたときに処理を実行する】
https://www.moug.net/tech/exvba/0050131.html
を参考にどうぞ。

回答
投稿日時: 19/02/26 16:23:21
投稿者: WinArrow
投稿者のウェブサイトに移動

質問タイトルのようなことを
VBAで対応するならば、
セルに入力させるのではなく、
ユーザーフォームを使って、入力させる方がよいと思います。
 
そのばあい、「販売単価」を「直接入力」するか、「自動計算」させるかを
選択するオプションボタンなどを用意するとよいでしょう。
入力後、ユーザーフォームで入力したデータをシートに格納します。

投稿日時: 19/02/28 15:06:04
投稿者: nanodia

WinArrowさん、
Suzuさん
コメントありがとうございます。
 
オプションボタンを用意してやってみます。
ありがとうございました