小技集

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



2023年12月18日【ID:0】

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

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


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

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

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

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


手順確認

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

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

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

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

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

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

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

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

ExcelVBAレベル確認

開発

では、以下の内容を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行挿入されます。


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

▼サンプルファイル▼


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

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


メンバー募集 メンバー募集





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

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


- 人気の記事 -



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



サイト累計閲覧数

7151799

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

Excel完全制覇


ちょっとした機能 便利ツール
【小技集】

【Excel】姓と名の間に半角スペースの入力を強制

【Excel】存在しているシートのみ目次にリンクを表示

【Excel】再利用するための瞬時に値を削除できる設定

【Excel】VBAとOfficeスクリプトのコードを比較(対象行の削除)

【Excel】特定の項目が特定の値の場合に行全体を色付け

【ExcelVBA】完了タスクを非表示にして着手中タスクを上位表示する

【ExcelVBA】カテゴリー単位でセルを自動結合

【ExcelVBA】自作関数(ユーザー定義関数)が自動更新しない

【Excel】期限に応じた優先度を自動で表示させる

【Excel】表の中に集計行を瞬時に挿入

【Excel】VLOOKUP関数で列番号を数えずに抽出

【Excel】項目を瞬時に選択するリンクを作成

【Excel】表の書式がコピーした際に崩れないようにする

【ExcelVBA】ActivateとSelectの違い

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

【ExcelVBA】データを入力する度に自動で並べ替え

【Windows】読めない漢字を入力する

【Excel】カレンダーに「休」を表示(祝日などを考慮)

【Excel】指定したセル数までしか値を入力できない仕組み

【Excel】SORT(BY)関数で複数列を基準にして並べ替える

【Excel】マクロ不要!セルの内容でメール送信!

【Excel】表の最終行を瞬時に選択

【Excel】FILTER関数で空白を空白のまま抽出する

【Excel】表にある日付のみグラフに表示

【Excel】グラフの日付軸の表示設定





一覧ページへ

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

メンバーに加入すると多くの特典が得られます

各プラン特典一覧 各プラン特典一覧

 加入ページへ 
⚠️今が最安値です⚠️

※メンバーページと連携すると表示されなくなります