- ベストアンサー
エクセルシートのA1に元々数字が10と入力されているとします。
エクセルシートのA1に元々数字が10と入力されているとします。 そのA1に続いて100を入力すると、A1が110と表示する方法を教えて下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> A1~A3000、B1~B3000、C1~C3000・・・T1~T3000まで hiro_o463さん、おはようございます。 A1:T3000 の範囲ということですね? Private Sub Worksheet_Change(ByVal Target As Range) Dim x As Double, y As Double If Intersect(Target, Range("A1:T3000")) Is Nothing Then Exit Sub If Target.Value = "" Then Exit Sub x = Target.Value On Error GoTo line With Application .ScreenUpdating = False .EnableEvents = False .Undo y = Target.Value Target.Value = x + y line: .EnableEvents = True .ScreenUpdating = True End With End Sub とします。 なお、前回の回答は整数のみでしたが、今回の回答は小数もOKにしてあります。
その他の回答 (3)
- merlionXX
- ベストアンサー率48% (1930/4007)
VBAを多少かじるとできるようになります。 これをちょいとお試しください。 とりあえず該当シートのA1セルだけはご希望の動きをすると思います。 1.シートのタブを右クリックし、コードの表示を選ぶ。 2.出てきたVisual Basic Editorの右の白い部分に下記のコードをコピーして貼り付けます。 Private Sub Worksheet_Change(ByVal Target As Range) Dim x As Long, y As Long If Target.Address <> "$A$1" Then Exit Sub If Target.Value = "" Then Exit Sub x = Target.Value On Error GoTo line With Application .ScreenUpdating = False .EnableEvents = False .Undo y = Target.Value Target.Value = x + y line: .EnableEvents = True .ScreenUpdating = True End With End Sub 3.AltキーとF11キーを同時に押してワークシートへもどります。 これでA1に数字を入れてみてください。(文字はダメですよ!)
補足
ありがとうございます。A1の計算できました。 早速ですが、A1~A3000、B1~B3000、C1~C3000・・・T1~T3000まで 同じように計算したいのですが、その場合はどうしたら良いでしょうか?
- DIooggooID
- ベストアンサー率27% (1730/6405)
こちらのような、イベントプロシージャを利用して、( change イベント ) セルの内容が変化したら、・・・ を実行する、とう処理を組み込みます。 http://home.att.ne.jp/zeta/gen/excel/c04p59.htm
お礼
参考URLありがとうございます。勉強させていただきます。
- aokii
- ベストアンサー率23% (5210/22062)
同じセルでは無理ではないでしょうか。 B1に100と入力したら、C1に=A1+B1と記入すれば110と表示されますけど。
お礼
思い通りのことができました。 今回の回答は親切に小数もOKにして頂きありがとうございました。