ここから本文です

エクセルのマクロですが、現在下記のようにしています。

ともさん

2019/10/1315:43:44

エクセルのマクロですが、現在下記のようにしています。

Sub 空白の挿入(a As Variant)

Dim tmp, Col As Long, Row_Start As Long, Row_End As Long, y As Long

With ActiveSheet.UsedRange
Row_End = Cells(Rows.Count, "B").End(xlUp).Row
End With

Range(a & "1", a & Row_End).Select

Col = Selection.Column

Row_Start = "3"
On Error GoTo 0

For y = Row_End To Row_Start Step -1

With Cells(y, Col)
If .Value .Offset(-1, 0).Value Then

Rows(y).Insert Shift:=xlDown
End If
End With
Next y

myError:
End Sub

別なプログラムからCallでこのプログラムに飛んでいるのですが、
このプログラムだと挿入された行に背景色などが設定されたままでした。

挿入される際に背景色の設定をクリアしたいのですがどうしたらいいでしょうか。

閲覧数:
28
回答数:
3
お礼:
250枚

違反報告

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

プロフィール画像

カテゴリマスター

tra********さん

2019/10/1322:00:20

Rows(y).Insert Shift:=xlDown



Rows(y).Insert Shift:=xlDown
Rows(y).Interior.ColorIndex = xlNone

この回答は投票によってベストアンサーに選ばれました!

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

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

taihenda****さん

2019/10/1318:04:48

If .Value .Offset(-1, 0).Value Then

でエラーになるはずですが(OffsetのオブジェクトがValue)

If .Offset(-1, 0).Value <> .Value Then
だとなんとなく辻褄が合いそう・・・・・


想像でコードを書くと


Sub 空白の挿入(a As Variant)
Dim Col As Long, Row_Start As Long, Row_End As Long, y As Long
Row_End = Cells(Rows.Count, "B").End(xlUp).Row
Col = Range(a & 1).Column
Row_Start = 3
For y = Row_End To Row_Start + 1 Step -1
With Cells(y, Col)
If .Offset(-1, 0).Value <> .Value Then
Rows(y).Insert Shift:=xlDown
.Offset(-1).Interior.ColorIndex = xlNone
End If
End With
Next y
End Sub

という感じですが・・・・・


添付図は

Sub test()
空白の挿入 ("D")
End Sub

でテストしています。

If .Value .Offset(-1, 0).Value Then...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

kak********さん

2019/10/1317:40:50

動作未確認ですが、下記のような修正でどうでしょうか?

Sub 空白の挿入(a As Variant)

Dim tmp, Col As Long, Row_Start As Long, Row_End As Long, y As Long

With ActiveSheet.UsedRange
Row_End = Cells(Rows.Count, &quot;B&quot;).End(xlUp).Row
End With

Range(a & &quot;1&quot;, a & Row_End).Select

Col = Selection.Column

Row_Start = &quot;3&quot;
On Error GoTo 0

For y = Row_End To Row_Start Step -1

With Cells(y, Col)
If .Value .Offset(-1, 0).Value Then

Rows(y).Insert Shift:=xlDown
Rows(y).ClearFormats 'オブジェクトの書式設定を削除します。
End If
End With
Next y

myError:
End Sub

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

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

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

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

閉じる

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

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

閉じる