• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロ。セルを空白にした時の処理)

マクロ。セルを空白にした時の処理

このQ&Aのポイント
  • B18セルから文字をDeleteで削除した場合、A7セルからもB18セルの入力内容を削除する方法について教えてください。
  • 現在、指定のマクロがあります。B18セルに数字や文字を入力すると、A7セルにB18セルの入力内容を含めた文字が表示されます。しかし、B18セル内の文字をDeleteで削除しても、A7セルは反応しません。
  • B18セルから文字を削除した場合に、A7セルからも削除する方法を教えてください。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

すみません。( str1、str2だけが残るイメージ)を見逃してました。 str1 = "T-POT #" str2 = " G1 G2 MEST計測を行いました。" If Range("B18") = "" Then Range("A7").Value = str1 & str2: Exit Sub でいかがでしょう。

yyrd0421
質問者

お礼

ありがとうございます! 頂いたマクロで目的が果たせました。 ネットで調べてもなんか関数でどうのこうのという話しかなくて、困っていました。 また1つ勉強になりました。 ありがとうございます。

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>B18セルから文字をDeleteで削除した場合A7セルからもB18セルの入力内容を削除 という事は、 Range("B18") = "" が成り立っている場合にもマクロを終了しないという事なのですから、 If Range("B18") = "" Then Exit Sub の部分でExit Subにはしない方が良いという事になります。 Private Sub SubProc1(ByVal Target As Range) Dim str1 As String Dim str2 As String str1 = "T-POT #" str2 = " G1 G2 MEST計測を行いました。" On Error Resume Next If Application.Intersect(Target, Range("B18")) Is Nothing Then Exit Sub Application.ScreenUpdating = False If Range("B18") = "" Then Range("A7").Value = "" Else Range("A7").Value = str1 & Range("B18") & str2 end If Application.ScreenUpdating = True End Sub とされるか Private Sub SubProc1(ByVal Target As Range) Dim str1 As String On Error Resume Next If Application.Intersect(Target, Range("B18")) Is Nothing Then Exit Sub If Range("B18") = "" Then str1 = "" Else str1 = "T-POT #" & Range("B18") & " G1 G2 MEST計測を行いました。" End If Application.ScreenUpdating = False Range("A7").Value = str1 Application.ScreenUpdating = True End Sub とされては如何でしょうか。

yyrd0421
質問者

お礼

ありがとうございます! いつもいつもkagakusukiさんには非常に助けられております。 今回も2パターンのマクロを示して頂き、本当にありがとうございます。 目的が果たせました! 1つのやりたい事に対して色んな書き方があるんだなと勉強になります。 今後ともよろしくお願いします。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

If Range("B18") = "" Then Exit Sub でプロシージャを抜けてますからDeleteで削除すると何も起こらないことになります。 If Range("B18") = "" Then Range("A7").Value = "": Exit Sub とすればいかがでしょう。

関連するQ&A