Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13235 / 13646 ツリー ←次へ | 前へ→

【6419】セルへ値を入力したときに、その値に応じて入力内容を変更するには? たか 03/6/28(土) 17:09 質問
【6435】Re:セルへ値を入力したときに、その値に応じ... Jカーター 03/6/30(月) 8:50 回答
【6451】できました!:セルへ値を入力したときに、そ... たか 03/6/30(月) 14:11 お礼

【6419】セルへ値を入力したときに、その値に応じ...
質問  たか  - 03/6/28(土) 17:09 -

引用なし
パスワード
   初めて投稿します。

10という数値が入っているセルへ5と上書き入力すると、そのセルが15と書き換えるマクロを作成しています。
Changeイベントを使っているのですが、上書きしたときと書き換えるときの両方で作動してしまい、困っています。
リストボックスを使うなど代替手段はあるのですが、大量のデータを入力するので、電卓感覚で数値のみ入力することで、入力作業のスピードを最優先したいのです。

何かいい知恵はないでしょうか?

【6435】Re:セルへ値を入力したときに、その値に応...
回答  Jカーター  - 03/6/30(月) 8:50 -

引用なし
パスワード
   こんにちは。
書き換えの動作を
  Application.EnableEvents = False
  書き換え
  Application.EnableEvents = True
という感じで挟んでみてはどうでしょう?

意味はヘルプで調べてみてください。
違ったらすいません。

【6451】できました!:セルへ値を入力したときに、...
お礼  たか  - 03/6/30(月) 14:11 -

引用なし
パスワード
   ありがとうございました。
そのとおりのやり方で動かすことができました。

せっかくなので、コードを書いておきます。

Private Sub Worksheet_Change(ByVal Target As Range)

  Application.EnableEvents = False

  r = Target.Row
  c = Target.Column
  
On Error GoTo エラー

  d1 = Cells(r, c).Value
  d2 = Sheets("裏作業シート").Cells(r, c).FormulaR1C1
  d3 = Sheets("裏作業シート").Cells(r, c).Value
  
  Sheets("裏作業シート").Cells(r, c).FormulaR1C1 = "=" & Mid(d2, 2) & "+" & d1
  Cells(r, c) = d1 + d3
  
GoTo pas

エラー:

 Sheets("裏作業シート").Cells.Clear

pas:
Application.EnableEvents = True


End Sub

13235 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free