小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2023年12月18日【ID:0】

【ExcelVBA】予定表の各日付に1行を追加する


※こちらの記事では、開発したExcelファイルを配布しています。

以下のように、すでに予定が入力されている予定表(スケジュール表/カレンダー)があります。

1日2行単位の予定表になっているのですが、1行を加えて3行単位に変更する場合、手作業で行うのは大変になります。
このような時に、VBAが使えると便利になります。

こちらでは、VBAを使って既存の予定表に1行追加する方法について解説していきます。

・手順確認

まずは、開発する手順を考えます。
行を挿入したい行が、4行目、6行目、10行目、…の場合、4行目から順番に挿入していけば良いように感じますが、実はそれでは上手くいきません。

その理由は、4行目を挿入した時点で、その次に挿入する予定だった行(6→7行目)が1行下へ移動してしまうためです。

そのため、行を一定間隔で挿入するプログラムを開発する際は、表の先頭からではなく、表の最終行から行うと良いです。

次に、表の中の行を挿入する最終行の確認をします。
こちらの表の場合は、186行目になります。

そのため、実行する手順は以下のようになります。

・186行目から4行目まで、2行ずつ上に移動しながら行を挿入

ちなみに、今回の手順の場合、予定表の真ん中に行を挿入することになります。

下に挿入するようにする場合は、罫線が崩れてしまう可能性があるため、挿入時に罫線を設定するプログラムも実装する必要があります。
※こちらでは、予定表の真ん中に挿入する方法のみを解説していきます。


・開発

では、以下の内容をVBAで実現していきます。

・186行目から4行目まで、2行ずつ上に移動しながら行を挿入

まず、[開発]タブの中の[マクロ]を選択します。

次の画面にて、好みの名前を入力し、[作成]を選択します。
こちらでは、「行挿入」という名前を入力しています。

標準モジュールが作成されましたら、以下のように記述します。

Sub 行挿入()
    
    Dim i As Integer
    For i = 186 To 4 Step -2
        Rows(i).Insert
    Next i
    
End Sub

・Dimでは数値を格納する用の入れ物「i」を用意しています。(変数の用意)
・For ~ Next間で「i」の値を変えながら繰り返し実行しています。
・For ~ Next間の「i」は、186から4まで、-2ずつ変化させています。
・Rows(i).Insert で「i」行目に行を挿入しています。

記述できましたら、実行ボタンを押すことで、瞬時に予定表の各日程に1行挿入されます。

ExcelVBAレベル確認

VBAは理屈が分かってくると、そこまで難しいものではないので、まだVBAを触ったことがない方は、挑戦してみることをオススメします。

▼サンプルファイル▼


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。


メンバー募集
1分で読める小技集 1分で読める小技集





リンクの共有はこちらから行えます。

  リンクコピー Twitter Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

2314465

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ