指定した位置に空白セルを挿入するマクロ
セルを挿入 マクロ 22b回
セルを挿入する記録マクロ
指定した位置に空白セルを挿入するマクロを記録します。
マクロ 22回からの続きです。手作業でセルを挿入する場合、挿入後に、セルを下方向か右方向にシフトすることができます。
マクロの記録をしている場合も、セルの挿入ダイアログボックスが表示されて、シフト方向を選ぶ設定になります。
(サンプルファイルは、こちらから
3行マクロ22回サンプルデータ)
セルを挿入しシフト方向を指定する
マクロの記録の手順をおさらいします。今度は、B1セルの位置に
セルをひとつ追加します。 B1セルを選択します。
セルをひとつ追加します。 B1セルを選択します。
Excel2013では、「開発」タブの「コード」グループにある、マクロの記録ボタンをクリックします。
挿入ボタンから、セルの挿入をクリックします。
セルの挿入ダイアログボックスが表示されるので、サンプルでは右方向にシフトをチェックします。
OKをクリックすると、B1セルに空白セルが1つ追加されて、元のセルは右方向にシフトしました。
挿入されたセルには”3月”と入力して、マクロの記録を終了しました。
記録のマクロのコードは以下のようになりました。必要なコードは最初の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で挿入した後の書式のコピー元を指定できます。
記録のマクロでは、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