• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:空白のセルの場合は同じ文字を入力するVBA)

Excel VBAで空白セルの自動入力方法

このQ&Aのポイント
  • Excel VBAを使用して、空白セルに自動で文字を入力する方法について説明します。
  • 「セル範囲が空白の場合に、入力したセルと同じ文字を自動で入力するVBAの作成方法」について解説します。
  • また、既にセルに文字が入っている場合には自動で入力しないようにする方法についても説明します。

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

(1)シート名のタブ(左下にある切替用のタブ)を右クリック (2)「コードの表示」を選択して下記のVBAコードを貼付 (3)右上の×または、Alt+F11でVBEを終了 (4)該当のセル範囲に値を入力すると処理が実行されます ・コード内の末尾「★」の場所で対象とするセル範囲を変更できます ・コピペなどによる複数セルの同時変更には対応していません また、以下の二点の確認があります。 >(1)セルL5・L6・L23・L24・L25 >(例えばL24に「1」と入力した場合はL5・L6・L24・L25に「1」と自動で入力)  L24ではなく、L23ですよね? >(2)セルM5・M6・M23・M24・M25 >(例えばM24に「1」と入力した場合はM5・M6・M24・M25に「1」と自動で入力)  M24ではなく、M23ですよね? ■VBAコード Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub '準備 Dim flag As Boolean, ckCells As Variant, ckCell As Variant, myTar As Range Application.EnableEvents = False Application.ScreenUpdating = False '判定(1) ckCells = Array("L5", "L6", "L23:L25") '★ Set myTar = Nothing For Each ckCell In ckCells   If myTar Is Nothing Then     Set myTar = Range(ckCell)   Else     Set myTar = Union(myTar, Range(ckCell))   End If   If Not Application.Intersect(Target, Range(ckCell)) Is Nothing Then flag = True Next If flag Then GoTo go '判定(2) ckCells = Array("M5", "M6", "M23:M25") '★ Set myTar = Nothing For Each ckCell In ckCells   If myTar Is Nothing Then     Set myTar = Range(ckCell)   Else     Set myTar = Union(myTar, Range(ckCell))   End If   If Not Application.Intersect(Target, Range(ckCell)) Is Nothing Then flag = True Next If flag Then GoTo go '判定(3) ckCells = Array("L8:L10") '★ Set myTar = Nothing For Each ckCell In ckCells   If myTar Is Nothing Then     Set myTar = Range(ckCell)   Else     Set myTar = Union(myTar, Range(ckCell))   End If   If Not Application.Intersect(Target, Range(ckCell)) Is Nothing Then flag = True Next go: '変更適用 If flag Then   If WorksheetFunction.CountA(myTar) = 1 Then     If Len(Target) > 0 Then myTar = Target   End If End If Application.ScreenUpdating = True Application.EnableEvents = True End Sub

noname#247334
質問者

お礼

質問内容を少し間違えてスイマセン、ご指摘の通りです。 この度はありがとうございます!!非常に助かりました。

関連するQ&A