• ベストアンサー

エクセルシートのA1に元々数字が10と入力されているとします。

エクセルシートのA1に元々数字が10と入力されているとします。 そのA1に続いて100を入力すると、A1が110と表示する方法を教えて下さい。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.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にしてあります。

hiro_o463
質問者

お礼

思い通りのことができました。 今回の回答は親切に小数もOKにして頂きありがとうございました。

その他の回答 (3)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

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に数字を入れてみてください。(文字はダメですよ!)

hiro_o463
質問者

補足

ありがとうございます。A1の計算できました。 早速ですが、A1~A3000、B1~B3000、C1~C3000・・・T1~T3000まで 同じように計算したいのですが、その場合はどうしたら良いでしょうか?

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.2

こちらのような、イベントプロシージャを利用して、( change イベント ) セルの内容が変化したら、・・・ を実行する、とう処理を組み込みます。 http://home.att.ne.jp/zeta/gen/excel/c04p59.htm

参考URL:
http://home.att.ne.jp/zeta/gen/excel/c04p59.htm
hiro_o463
質問者

お礼

参考URLありがとうございます。勉強させていただきます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

同じセルでは無理ではないでしょうか。 B1に100と入力したら、C1に=A1+B1と記入すれば110と表示されますけど。

関連するQ&A