• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでVBAの起動がうまくいかない)

エクセルでVBAの起動がうまくいかない

このQ&Aのポイント
  • VBAに関してはあまり知識が無い初心者です。現在、会社で計算書をエクセルで作成しています。
  • 質問は、【A1に数量を入力し、B1に労務費を入力したら、B1にA1×B1の計算結果が表示される】という感じにしたいのです。
  • A1の数量を2や3にしてもB1に入力した数値がちゃんとB1×2、B1×3になるようにしたいです。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Range("A1").Value = Target.Value * Range("B1").Value  ↓ Range("B1").Value = Target.Value * Range("B1").Value かな。

kjw
質問者

お礼

ありがとうございました! どういう経緯でこのようになるのかは、私の知識では分かりませんが、n-junさんの回答通りにしたら、思い通りに動いてくれました。 本当に助かりました。ありがとうございました!!

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 #3さんとおっしゃっていることと同じで、もし、#1 さんの回答であっているというなら、私の解釈は間違っていると思います。 >A1に1、B1に27,450を入力するとB1に27,450が表示されはするのですが >A1の数量を2や3にしてもB1に入力した数値がちゃんとB1×2、B1×3になるようにしたいです。 A1 に1 を入力して、B1に 27,450 を入力しても、定数自体は、B1にあるのですから、B1を書き換えたら、B1を元にして、数量が変化してしまいますから、あくまでも、 A1 B1 1 -> 27,450 2 -> 54,900 3 ->164,700 4 ->658,800 ということになると思います。これでよいなら、それはそれまでです。 確かに、B1 *1, B1 *2, B1 * 3 になっています。 A1 B1 1 -> 27,450 2 -> 54,900 3 -> 82,350 4 ->109,800 ということだと思いました。B1に定数を入れると、A1*B1 の数式を作るわけです。それは、私の知っている範囲なら、かなり変則的なマクロです。元にしたイベントマクロとは、似てはいても、考え方の違うものです。 実務的には、それは C1: =A1 * B1 のような標準的な数式のスタイルにしたほうがよいと思います。実験的なマクロというなら別ですが、そのマクロを公開するのは保留しておきます。

kjw
質問者

お礼

御礼が遅くなって申し訳ありません。 ありがとうございました。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

この手のご質問は使い方がよく掴めないのですが・・・ B1に27450、A1に1を入れると、B1に 27450 そのまま、A1に2を入れると、B1に 54900 さらに、A1を3にすると、B1が 164700 (82350ではありません) ということでよければ、No1の回答の通りですが・・・ (関係なかったら、スルーしてください)

kjw
質問者

お礼

説明不足で申し訳ありませんでした。 マクロもそうですが、質問の仕方も勉強しなきゃダメですね…。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>If Target.Address(0, 0) <> "A1" Then Exit Sub は If Target.Address <> "$A$1" Then Exit Sub(注) ---- Application.volatile TRUE  を入れる ーー Private Sub Worksheet_Change(ByVal Target As Range) Application.Volatile True If Target.Address <> "$A$1" Then Exit Sub If VarType(Target) <> vbDouble Then Exit Sub Application.EnableEvents = False Range("A1").Value = Target.Value * Range("B1").Value Application.EnableEvents = True End Sub ーーー トラブったときは下記を実行してから、テストする。 EnableEvents = False状態のままになっていて、反応しない経験がある。 Sub test02() Application.EnableEvents = True End Sub ーーー (注)質問のとおりでもよいが、簡単なほうを勧めます。 参考 Sub test03() MsgBox Range("A1").Address MsgBox Range("A1").Address(0, 1) MsgBox Range("A1").Address(1, 0) MsgBox Range("A1").Address(1, 1) End Sub

kjw
質問者

お礼

御礼が遅くなって申し訳ありません。 まだまだ勉強不足を実感しました…。 もっと勉強しなきゃダメですね。 ありがとうございました!

関連するQ&A