こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

マクロで引き算して0にする

エクセルで任意のセルの値(正の整数)を引き算して、そのセルに”0”を表示するマクロはできますか。

たとえば、A1のセルに”50”と入力されているとき、マクロでA1のセルに”=50-50”という計算式を入力することはできますか。

データの入力されているセルのアドレス、および値ともに任意です。

教えてください。

投稿日時 - 2007-12-12 18:01:23

QNo.3592720

暇なときに回答ください

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

> アクティブセルのみ実行させるにはどのように組みかえれば

Sub test02()
With ActiveCell
.Formula = "=" & .Value & "-" & .Value
End With
End Sub

投稿日時 - 2007-12-13 15:59:28

お礼

今度こそ自分が欲しかった答えのようです。

本当に有難う御座いました。

いずれは私も誰かの質問に答えられるよう勉強に励みます。

投稿日時 - 2007-12-13 16:28:01

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

#3 merlionXXです。
意味がわからないと不安でしょうから一応簡単に逐条解説をつけますね。

Sub test01()'マクロ始まり
With ActiveSheet '現在見えているシートにおいて
On Error GoTo line 'エラーが発生したらline:に飛ぶ(数値のセル無ければエラー)
Set Rng = .UsedRange.SpecialCells(xlCellTypeConstants, 1) '使用範囲内で数値のセルをRngと名付ける
For Each c In Rng 'Rngの各セルをcとし、各cで
c.Formula = "=" & c.Value & "-" & c.Value 'cの式を"=cの値-cの値"とする
Next '繰り返す
End With 'with文終了
Exit Sub 'マクロから抜ける
line: 'エラーで飛んできたら
MsgBox "数値がありません。" 'メッセージを出す
End Sub'マクロ終わり

投稿日時 - 2007-12-13 10:33:51

補足

ご親切に有難う御座います。

が、大変すみません。!!

アクティブセルのみ実行させるにはどのように組みかえれば宜しい
ですか。

言葉足らずの説明で貴重な時間をさいて頂き申し訳ありません。

投稿日時 - 2007-12-13 14:57:21

ANo.3

こんな感じでいかがでしょうか?

Sub test01()
With ActiveSheet
On Error GoTo line
Set Rng = .UsedRange.SpecialCells(xlCellTypeConstants, 1)
For Each c In Rng
c.Formula = "=" & c.Value & "-" & c.Value
Next
End With
Exit Sub
line:
MsgBox "数値がありません。"
End Sub

投稿日時 - 2007-12-12 19:56:06

お礼

ご回答有難う御座いました。

無事うごきました。
これで作業効率がかなりUPしそうです。

とりあえずコピー&ペーストして使いますが、
解説書をみて勉強させていただきます。

初めての質問でしたが、ずっとほしかった答えが
見つかってとてもうれしいです。

本当に有難う御座いました。

投稿日時 - 2007-12-12 20:10:20

ANo.2

入力というより値を数式に置き換える作業になりますが可能です。


Private Sub Worksheet_Change(ByVal Target As Range)
'数式を除外
If Left(Target.Formula, 1) <> "=" Then Exit Sub
'A1以外のセルと文字列を除外
If Target.Address = "$A$1" And IsNumeric(Target) Then
'数式をセット
Target.Formula = "=" & Target.Value & "-" & Target.Value
End If
End Sub

投稿日時 - 2007-12-12 19:27:23

補足

実行時エラー424

オブジェクトが必要です。

のエラーになってしまいました。

If Left(Target.Formula, 1) <> "=" Then

の部分が黄色くなっています。

つたない質問ですみません。

投稿日時 - 2007-12-12 19:52:32

ANo.1

なぜ引き算なのでしょうか?
なにか入力のあるセルを0にするだけではダメなのですか?

投稿日時 - 2007-12-12 18:07:27

補足

元に入力されていた数量を確認したいからです。

一時的に”0”に数量を変更したいのです。

投稿日時 - 2007-12-12 18:19:31

あなたにオススメの質問