電子書籍の厳選無料作品が豊富!

当方、マクロ・VBA初心者です。
マクロの記録を利用し、マクロの作成を行いました。
既にデータが入力されているセルに対して、
・行の追加
・列の追加
・セルの結合
を行うマクロの記録を行い、別シートにも同様の作業を反映させようとしたのですが、
マクロを実行したところ、データが入力されているセルに対しては作業が反映されず、
新規列・行が追加され、追加されたセルに対して作業が実行されました。

マクロの記録を行ったシートと、作業を反映させたいシートは同様の構成となります。
こちら、別シートの既存セルに対して作業を実行するにはどのようにしたらよいでしょうか。

ご教示いただければ幸いです。

▼マクロの記録で作成されたマクロ
Sub Macro1()
'
' Macro1 Macro
'

'
Columns("I:K").Select
Range("I2").Activate
Selection.EntireColumn.Hidden = False
Columns("I:J").Select
Range("I2").Activate
Selection.ColumnWidth = 20
Columns("C:C").Select
Range("C2").Activate
Selection.Insert Shift:=xlToRight
Rows("4:4").Select
Selection.Insert Shift:=xlDown
Rows("6:6").Select
Selection.Insert Shift:=xlDown
Rows("8:8").Select
Selection.Insert Shift:=xlDown
Rows("10:10").Select
Selection.Insert Shift:=xlDown
Rows("12:12").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=6
Rows("14:14").Select
Selection.Insert Shift:=xlDown
Rows("16:16").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=3
Rows("18:18").Select
Range("C18").Activate
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=-27
Rows("3:18").Select
Selection.RowHeight = 32
Range("J2:K2").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("A3:A4").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With

<セル結合の繰り返しのため中略>

Selection.Merge
Range("T17:T18").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("A3:E18").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$E3=""S"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.799981688894314
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$E3=""D"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 16764159
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$E3=""DP"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 16764159
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub

「マクロの記録を使用したマクロの実行につい」の質問画像

A 回答 (2件)

記録マクロは操作を記録します



幸い、ご質問のコードにはシートを指定するコードがありません
したがってアクティブシート(表示されているシート)に対して実行されます
作業をしたいシートを表示して Alitキー+F8キーを押下して
ダイアログの Macro1 を選択して 実行ボタンを押下してください

いかがでしょう
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
他シートでも実行できました!

お礼日時:2024/07/02 10:41

読むに堪えない程汚いコーディングですから、いわゆる操作マクロですね。


まずは、VBAの文法を理解して動作を読めるくらいには成らないと、デバッグすら出来ません。
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。

お礼日時:2024/06/28 17:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A