小技集

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



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行ずつ上に移動しながら行を挿入

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

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


開発

では、以下の内容を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
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



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



サイト累計閲覧数

7421443

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

Excel完全制覇


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

【Windows】隠し機能「GodMode」の作成方法

【Excel】表のデザインを自動で作成する方法 2選

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

【Excel】シートを完全に非表示にする

【Excel】フィルターで絞った上でトップ3を求める

【ExcelVBA】瞬時にフィルターで絞り込み

【Excel】効率的に役割を割り当てる設定

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

【Excel】重複のない順位を割り当てる

【Excel】行(列)挿入時に上(左側)の書式が反映される問題

【Excel】日付の特殊なオートフィルの活用

【Excel】先頭の「0」を維持する簡単な対策

【Excel】同じセル内の複数の値を集計

【Excel】覚えるべき「日付を求める関数」2選

【Excel】非表示セルを除いてコピー&ペースト

【Excel】PHONETIC関数の結果を「ひらがな」にする

【Excel】存在しない矢印線の作成方法

【ExcelVBA】書類の確認と同時にロックする仕組み

【ExcelVBA】ActivateとSelectの違い

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

【Excel】図形の幅ギリギリまでテキストを表示

【ExcelVBA】相関性を保ったまま重複のない番号を自動入力

【Excel】XLOOKUP関数で指定した複数項目を抽出

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

【Excel】Officeクリップボードを活用したメモ





一覧ページへ

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