• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メッセージボックスの使い方)

メッセージボックスの使い方

このQ&Aのポイント
  • MsgBoxを使用してデータを消去する方法について質問があります。現在は指定した範囲のデータを削除するコードを書いていますが、データがない場合には何もせずにメッセージを表示したいと考えています。
  • 現在のコードではデータがない場合でも削除を試みてしまいますが、データがない場合にはメッセージを表示して処理を終了させる方法を教えていただきたいです。
  • また、データが存在する場合には最初に指定したメッセージを表示するようにしたいです。どのようにコードを修正すればよいでしょうか。

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

  • ベストアンサー
  • emaxemax
  • ベストアンサー率35% (44/124)
回答No.3

ANo1です。 もう1例です。 Sub 消去する() If Application.WorksheetFunction.CountA(Range("E10:E109")) = 0 Then MsgBox ("個数が入っていません"), vbExclamation Else If MsgBox("すべてのデータを消去します。" & vbNewLine & _ "いいですか?", vbYesNo + vbQuestion, "データを消去") = vbYes Then Range("E10:E109").ClearContents End If End If End Sub

melon-hiro
質問者

お礼

emaxemaxさん、ありがとうございました。 お礼を記入して、ベストアンサーのボタンを押したらお礼が消えてしまったみたいで・・・。 皆さんが一生懸命に考えてくださっている間、私は風呂に入っていました。 台風の影響で停電したら困りますからね。 二つも教えていただきありがとうございました。 どちらも思い通りに動いてくれました。 大変助かりました。 今後も質問をすることがあると思いますが、よろしくお願いします。

その他の回答 (2)

  • t-aka
  • ベストアンサー率36% (114/314)
回答No.2

'// 選択範囲を記憶する Dim Rng As Range Set Rng = Range("E10:E109") '// 選択範囲内の数値を調べる Dim cnt As Double cnt = WorksheetFunction.Count(Rng) Dim cntFound As Boolean '// 選択範囲に数値は見つかったか cntFound = (cnt <> 0) If cntFound Then '// 数値がある場合 Else '// 数値がない場合 End If こんな感じにして、数値がある場合・ない場合で処理を分けてはいかがでしょうか。

melon-hiro
質問者

お礼

t-akaさん ありがとうございました。 いろいろな方法があるのですね。 早速貼り付けてやったのですが、私のやり方がどこか間違っているのでしょう。 うまく動きませんでした。 申し訳ありません。 ただ、課題は解決しました。 またよろしくお願いします。 本当にありがとうございました。

  • emaxemax
  • ベストアンサー率35% (44/124)
回答No.1

Sub 消去する() If Application.CountA(Range("E10:E109")) = 0 Then MsgBox ("個数が入っていません"), vbExclamation Exit Sub End If タイトル = "データを消去" メッセージ = "すべてのデータを消去します。いいですか?" スタイル = vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal yesno = MsgBox(メッセージ, スタイル, タイトル) If yesno = vbYes Then Range("E10:E109").Select Selection.ClearContents End If End Sub ではいかがでしょう。

関連するQ&A