指定した位置に空白セルを挿入するマクロ

空白セルを挿入
空白セルを挿入

セルを挿入 マクロ 22b回

セルを挿入する記録マクロ

指定した位置に空白セルを挿入するマクロを記録します。
マクロ 22回からの続きです。手作業でセルを挿入する場合、挿入後に、セルを下方向か右方向にシフトすることができます。 マクロの記録をしている場合も、セルの挿入ダイアログボックスが表示されて、シフト方向を選ぶ設定になります。

(サンプルファイルは、こちらから 3行マクロ22回サンプルデータ

セルを挿入しシフト方向を指定する

マクロの記録の手順をおさらいします。今度は、B1セルの位置に
セルをひとつ追加します。 B1セルを選択します。
セルを挿入するマクロを記録1
Excel2013では、「開発」タブの「コード」グループにある、マクロの記録ボタンをクリックします。
セルを挿入するマクロを記録2
挿入ボタンから、セルの挿入をクリックします。
セルを挿入するマクロを記録3
セルの挿入ダイアログボックスが表示されるので、サンプルでは右方向にシフトをチェックします。
セルを挿入するマクロを記録4
OKをクリックすると、B1セルに空白セルが1つ追加されて、元のセルは右方向にシフトしました。
セルを挿入するマクロを記録5
挿入されたセルには”3月”と入力して、マクロの記録を終了しました。

セルを挿入するマクロを記録6
記録のマクロのコードは以下のようになりました。必要なコードは最初の1行だけです。 Selection オブジェクトにInsertメソッドを実行しています。
Sub Macro3()
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "3月" 
    ActiveCell.Characters(2, 1).PhoneticCharacters = "ガツ"
    Range("C1").Select
End Sub

Insertメソッドの構文

Insertメソッドの構文は、引数Shiftで挿入後にシフトする方向を指定し、引数CopyOriginで挿入した後の書式のコピー元を指定できます。

Insertメソッドの構文
記録のマクロでは、CopyOrigin:=xlFormatFromLeftOrAboveと左か上を指定しているので、書式が設定されませんでした。 これをCopyOrigin:=xlFormatFromRightOrBelowに変更して、 次のように書き換えると、汎用マクロとして使い勝手がよくなります。
Sub セル挿入右シフト右書式コピー()
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightOrBelow
End Sub
Sub セル挿入右シフト上か左の書式コピー()
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

列にInsertメソッドでCopyOriginを適用

列を挿入する場合でも、Insertメソッドの引数CopyOriginをxlFormatFromRightOrBelowとしてやると、右側の書式を適用するようになります。以下の例では、列の挿入を右側に指定し、書式のコピーも右側の列の書式を指定しています。

Sub 列を右に挿入して書式CopyOriginでRight()
    ActiveCell.EntireColumn.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightOrBelow
End Sub

こちらもおすすめ