ここから本文です

文化祭の売り上げ管理にエクセルを使います。

アバター

ID非公開さん

2019/12/1101:35:19

文化祭の売り上げ管理にエクセルを使います。

また注文時に暗算で計算すると間違う可能性があるので、注文時の計算もエクセルで行います。

商品情報は3〜8行に入力し、注文用の表はA列に商品名、B列に単価、C列に注文数、D列に商品毎の合計金額、さらにD列の一番下(D10)に全ての商品の合計金額をオートSUMで計算されるようにしました。
一方販売履歴用の表はL列に商品名、M列に単価、N列に販売数、O列に商品毎の合計金額、さらにO列の一番下(O10)に全ての商品の合計金額をオートSUMで計算されるようにと、注文用と大きな違いはありません。

でもセルの数字を変更する時に間違う可能性が出てきました。
そこで、以下の2つのマクロを作成しました。

(商品Aが販売された時用)

Sub Macro1()

Range("C3").Value = Range("C3").Value + 1
Range("N3").Value = Range("N3").Value + 1

End Sub


(商品Aの販売がキャンセルされた時用)

Sub Macro2()

Range("C3").Value = Range("C3").Value - 1
Range("N3").Value = Range("N3").Value - 1

End Sub


また注文確定時に注文用の表から数値をリセットするため、以下のマクロを作成しました。

Sub Macro13()

Range("C3:C8").Clear

End Sub


ここまでは問題なく動作出来たのですが、一つだけ動作しないマクロがあります。
全ての商品がキャンセルされた時、商品毎にキャンセルのボタンを押すのは面倒です。
そこでN3〜N8にC3〜C8の数値を減算として貼り付け出来ないかと調べた所、PasteSpecialソメッドを使えば出来るという事を知ったので、以下のマクロを作成しました。

Sub Macro14()

Range("C3:C8").Cut

Range("N3").PasteSpecial Paste:=xlPasteAll, _
Operation:=xlPasteSpecialOperationSubtract
intSecondPasteval = Range("N3").Value

End Sub


しかし、このマクロを実行すると
「実行時エラー '1004':
Range クラスの PasteSpesial ソメッドが失敗しました。」と表示されて思うように動いてくれません。
どこをどう直せば思うように動いてくれるのかわかる方はいらっしゃいますか?

閲覧数:
56
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

lgk********さん

2019/12/1105:45:55

Cut ではPasteSpecialはできません。Paste ならできますが。
Copyで減算貼り付けをして、その後、削除して下さい。

    [C3:C8].Copy
    [N3].PasteSpecial Operation:=xlSubtract
    [C3:C3].ClearContents

アバター

質問した人からのコメント

2019/12/11 15:27:27

CutでPasteSpecialが実行出来ないことは知りませんでした。
教えて頂いたマクロを入力してみたら、問題なく動作しました。
ありがとうございました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる