小技集

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



2023年12月18日【ID:0】

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

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


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

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

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

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

📘 Excel小技100選(500円)


手順確認

まずは、開発する手順を考えます。
行を挿入したい行が、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行挿入されます。


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

▼サンプルファイル▼


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

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


小技集-電子書籍販売ページ 小技集-電子書籍販売ページ
メンバー募集 メンバー募集






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

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


- 人気の記事 -



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



サイト累計閲覧数

8308438

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

Excel完全制覇


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

【Excel】指定した年月のデータを数式で抽出

【ExcelVBA】省略した項目を自動で入力

【Excel】過去の入力パターン探しはもう不要!入力の効率化

【Excel】数式のセルを自動で色付け

【Excel】各担当ごとにシートを分割

【Excel】区切られた文字列から文字を抽出

【Excel】シート名などの文字列からその値を参照する数式

【Excel】特定のセルに値がある場合に行全体を色付け

【Excel】グラフ上で目標値を可視化

【Excel】実は数式内にコメントを残せます

【Excel】非表示にした範囲の値をグラフに表示させる

【Excel】表の入力必須項目を自動色付け(入力後は解除)

【Excel】表の途中に行を一瞬で挿入

【Excel】値を変えずに千の位以上を表示

【Excel】FILTER関数による抽出データの元データに遷移するハイパーリンク

【Excel】散布図で値が重複する場合の対策

【Excel】表記を統一する際に便利な関数7選

【Excel】表の順番をランダムに並べ替える

【ExcelVBA】各要素のデータ行を自動で挿入

【Excel】XLOOKUP関数を使って複数条件で検索

【Excel】空白を上のセルの値で埋める

【Excel】テスト用の数値データを瞬時に入力

【Excel】重複入力できないリストを作成

【Excel】分析に必要な情報を瞬時に求める

【Excel】条件付き書式で検索機能を作成





一覧ページへ

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