小技集

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



2023年12月18日【ID:0】

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


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

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を触ったことがない方は挑戦してみることをオススメします。

▼サンプルファイル▼


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


メンバー募集
ExcelVBA学習ロードマップ配布 ExcelVBA学習ロードマップ配布





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

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


- 人気の記事 -



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



サイト累計閲覧数

4971514

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

Excel完全制覇


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

【Excel】セル内にミニグラフを作成「スパークライン」

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

【Excel】重複データを除いた一覧表を作成

【Excel】期限が3日以内の未完了タスクを色付け

【Excel】「文字列の数字」が入力されたセルを色付け

【Excel】特定の文字を一括で色付けする方法 2選

【Excel】値がない行(列)を自動で色付け

【Excel】テーブルのスライサー

【Excel】セル内でスクロール!?

【Googleスプレッドシート】チェックボックスの自動表示

【Excel】瞬時に先頭(末尾)のシートへ移動

【Excel】マトリックス表からリスト形式の表に変換

【Googleスプレッドシート】行や列の固定方法

【ExcelVBA】数式「AND(3,4)」とVBA「3 And 4」は違う!?

【Excel・Googleスプレッドシート】セルを囲む薄い線を非表示にする

【Excel】各商品の最終購入日を表から抽出する

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

【Excel】出社時刻と退社時刻から勤務時間を求める

【Excel】片方にしか存在しない値を見つける

【Excel】「Ctrl+A」の別の活用例

【Excel】取り消し線を瞬時に設定

【Excel】グラフを後から組み合わせる

【Excel】絞り込み作業の効率化「スライサー」

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

【Excel】セル単位でパスワードを設定する





一覧ページへ

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

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

・全作品ダウンロード
・コンテンツ閲覧管理
・チャットサポート


 詳しくはこちら 

閉じる

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