ここから本文です

Excel VBAを使用し、sheetから数式を一括削除したい 下記のように記述してみた...

a11********さん

2018/10/3011:32:45

Excel VBAを使用し、sheetから数式を一括削除したい

下記のように記述してみたのですが、メッセージボックスで「処理を中止します」を選んでも中止はされず、そのまま実行されてしまいます。

状況としては、マクロの記憶を使い ①sheet全体をコピー ②右クリックで値のみを張り付け をしたものに、メッセージボックスの記述を追加しただけなので「処理を中止します」を選んだ場合の処理がされない状況です。

その方法がさっぱり分かりません (^^;)

なにをどう追加喜寿すればよいでしょう?
よろしくお願いします。

Sub 数式削除()
'
' 数式削除 Macro
'
Dim rc As VbMsgBoxResult
rc = MsgBox("処理を続行しますか?", vbYesNo + vbQuestion)
If rc = vbYes Then
MsgBox "処理を続けます", vbInformation
Else
MsgBox "処理を中止します", vbCritical
End If

Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L2").Select

End Sub

閲覧数:
22
回答数:
2
お礼:
25枚

違反報告

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

mmi********さん

2018/10/3011:58:06

Else
MsgBox "処理を中止します", vbCritical
End If

でメッセージを表示して次へ進んでいるからです。

MsgBox "処理を中止します", vbCritical
の後に
Exit Sub
を入れて下さい。

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

2018/10/30 12:16:09

解決です!
ありがとう、ございました。

ベストアンサー以外の回答

1〜1件/1件中

ina********さん

2018/10/3012:01:15

中止する時は、Exit Sub でプロシージャを抜けます。


Sub 数式削除()
'
' 数式削除 Macro
'
    Dim rc As VbMsgBoxResult
    
    rc = MsgBox("処理を続行しますか?", vbYesNo + vbQuestion)
    If rc = vbYes Then
        MsgBox "処理を続けます", vbInformation
    Else
        MsgBox "処理を中止します", vbCritical
        Exit Sub
    End If
    
    Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    
    Range("L2").Select

End Sub


なお、後半部分は下記のようでもOKかと思います。

    With ActiveSheet.UsedRange
        .Value = .Value
    End With

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

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

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

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

閉じる

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

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

閉じる