Excel VBAで最後の行に数式をオートフィルする(5例)

  • これを共有
Hugh West

Microsoft Excelをお使いの方なら、オートフィルの重要性をご存知でしょう。 行や列をまたいで数式をコピーするために、この方法を使います。 現在はマウスを使って手動で行うことができます。 しかし、データ行が大きい場合、最後の行や列に数式をコピーすることは困難です。 VBAコードを使用して、最後の行や列に数式をオートフィルすることが可能です。を容易にする。

このチュートリアルでは、VBAコードを使用してExcelの最後の行に数式をオートフィルすることを学びます。 このチュートリアルは、適切な例と適切なイラストでポイントになります。 だから、私たちと一緒に滞在してください。

練習用ワークブックをダウンロードする

最後の行に数式をオートフィルする.xlsm

Excelのオートフィルとは何ですか?

さて、オートフィルとは、Microsoft Excelに内蔵されている機能で、行や列の残りを値や書式、数式で自動的に埋めることができます。 これは、任意のセルの右下隅にカーソルを持っていくと確認できます。 これをExcelのオートフィルハンドラと呼びます。

次のスクリーンショットをご覧ください。

ここでは、2つの数字が見えます。 残りの行は、Excelのオートフィルを使用して記入します。

まず、セルB5:B6の範囲を選択します。 その後、右下にオートフィルハンドルが表示されます。

では、このオートフィルハンドルを下にドラッグしてください。

このように、Excelは残りのセルを自動的に埋めてくれました。 これが、Excelのオートフィルの基本的な使い方です。

Excel VBAでオートフィルを使用する方法

行や列の数が多い場合、オートフィルのハンドルを最後の行や列にドラッグダウンしなければなりません。 これは非常に慌ただしい作業です。ありがたいことに、ExcelのVBAコードを使用すると、これを最小限に抑えることができます。 VBAコードを使用して、セルに値、数式、またはフォーマットをオートフィルすることが可能です。

ジェネリックシンタックス

Range.AutoFill Destination, Type

これです。

Range("B5")。 残りのシリーズを埋めるためのメインパターンを持つセル。

目的地 パターン系列で埋めたいセルの範囲。

タイプを xlAutoFillType とする。 シリーズフィルタイプ。 選択できるさまざまなオートフィルタイプがあります。

続きを読む ExcelでVBAオートフィルを使用する方法

Excel VBAのオートフィルの4つのタイプ

このセクションでは、オートフィルの種類について説明します。 xlAutoFillType。 ここでは、その例をいくつかご紹介しています。

1. xlFillDefault

このタイプの自動入力は、前の例ですでに見ました。

スクリーンショットをご覧ください。

以下のVBAコードを入力し、残りのセルをオートフィルします。

 Sub xlDefault_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillDefault End Sub 

さて、VBAマクロを実行すると、その後、以下のように表示されます。

VBAマクロを使って残りのセルを自動的に埋めてくれます。

2. xlFillCopy

同じ値をコピーするには、タイプ xlFillCopy をオートフィルの種類に追加してください。

スクリーンショットをご覧ください。

以下のVBAコードを入力し、残りのセルをオートフィルします。

 Sub xlFillCopy_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillCopy End Sub 

さて、VBAマクロを実行すると、その後、以下のように表示されます。

Excelは残りのセルを同じパターンの値で埋めます。

3. xlFillMonths

を使用して月を記入することもできます。 xlFillMonths オートフィル・タイプ。

スクリーンショットをご覧ください。

ここでは、1月と2月の2つの月を入力しました。

以下のVBAコードを入力し、残りのセルをオートフィルします。

 Sub xlFillMonths_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillMonths End Sub 

さて、VBAマクロを実行すると、その後、以下のように表示されます。

Excelは自動的にパターンを理解し、そのパターンで埋め尽くします。

4. xlFillFormats

VBAのオートフィルを使えば、他のセルに書式をコピーすることもできます。 そのためには xlFillFormats オートフィルタリングタイプ。

スクリーンショットをご覧ください。

ここでは、2つのセルをいくつかの色で塗りつぶしています。

ここで、残りのセルをオートフィルするために、以下のVBAコードを入力します。

 Sub xlFillFormats_type() Range("B5:B6").AutoFill Destination:=Range("B5:B11"), Type:=xlFillFormats End Sub 

さて、VBAマクロを実行すると、その後、以下のように表示されます。

ご覧のように、このVBAマクロはオートフィルを利用してB列の行を効率的に埋めています。

続きを読む Excelで月をオートフィルする方法

Excel VBAで最終行へのオートフィル式を使った5つの例題

1.最後に使用した行に数式をオートフィルするVBA

同様に、VBAを使って数式をオートフィルすることもできます。 前のセクションを読んでいれば、簡単に実行できます。 問題は、最後の行まで数式をオートフィルしなければならないときです。 まず、最後に使われた行を特定しなければなりません。 その後、VBAコードが自動的にそれらを埋めるのです。

次のデータセットを見てください。

ここでは、販売員の売上データセットがあります。 我々の目標は、1月と2月の売上を合計列に追加することです。 その後、Excelの最後に使用した行にVBAを使用してオートフィル方式を使用する予定です。

これを実行するには、次のコードを入力します。

 Sub last_used_row() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E") & last_row) End Sub 

last_row = Cells(Rows.Count, 2).End(xlUp).Row: B列から最後に使用された行を返します。データセットから任意の列を選択できます。

Range("E5").Formula="=SUM(C5:D5)"。 の売上を追加しています。 セルC5 D5.

Range("E5").AutoFill Destination:=Range("E5:E" & last_row).Range("E5:E" &).AutoFill Destination:=Range("E5:E" & last_row): 結果を取得した後、オートフィルを使用します。 からオートフィルを開始します。 セルE5 を、前回取得した最後に使用した行に変更します。

ここで、VBAマクロを実行します。 その後、以下の出力が表示されます。

ご覧のように、このVBAコードは最初の結果を追加し、Excelの最後の行に数式をオートフィルしています。

続きを読む Excelで最後の行までデータを入力する方法

2.VBAでActiveCellから最終行までオートフィルを行う

さて、オートフィル方式で特定の範囲を使用したくない場合は、アクティブセルの値、数式、または書式を使用できます。 セルをクリックして、残りの行をアクティブセルの数式でオートフィルする場合は、この方式を使用します。

前の例と似ています。 前のデータセットを使っています。

では、1月と2月の売上を足して、最後の行にExcel VBAで数式をオートフィルしてみましょう。

では、次のコードを入力してください。

 Sub autofill_active_cell() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row ActiveCell.Formula = "=SUM(C5:D5)" ActiveCell.AutoFill Destination:=Range(ActiveCell.Address & ":E" & last_row) End Sub. 

last_row = Cells(Rows.Count, 2).End(xlUp).Row: B列から最後に使用された行を返します。データセットから任意の列を選択できます。

ActiveCell.Formula = "=SUM(C5:D5)": の売上を追加しています。 セルC5 D5 を選択したセルに入力します。

ActiveCell.AutoFill Destination:=Range(ActiveCell.Address & ":E" & last_row): 結果を取得した後、オートフィルを使用すると、アクティブセルから前回取得した最後に使用した行までオートフィルを開始します。

ここで、以下を選択します。 セルE5 .

その後、VBAマクロを実行し、最後の行に数式とオートフィルを追加します。

ご覧のように、VBAマクロを使って、最後の行まで数式をオートフィルすることに成功しました。

類似の読み物

  • エクセルで行を指定回数繰り返す方法(4つの方法)
  • Excelで自動的に行番号を付ける(8つの方法)
  • エクセルで列を同じ値で埋める方法(9つの裏ワザ)
  • エクセルでオートフィルのショートカットを適用する(7つの方法)

3.エクセルVBAでダイナミックレンジを使って最終行までオートフィルする

前回は、Excelの最終行までオートフィルするVBAマクロを紹介しました。 さて、これらの例では、すでにダイナミックレンジを使用しています。

静的範囲を理解するために、次のコードを見てください。

 Sub last_used_row() Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E11") End Sub 

私たちは基本的に、Excelに数式を入力するように セルE5 から自動入力します。 セルE5 まで セルE11 ここでは範囲を指定していますが、行数を増やした場合はどうでしょうか。 この場合、すでに特定の範囲を指定しているので、VBAは余分な行をオートフィルすることはありません。

この問題を解決するために、私はダイナミックレンジを取ることができるソリューションを考えました。

 Sub last_used_row() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E") & last_row) End Sub 

ご覧のように、まずこの行で最後の行を探します。

 last_row = Cells(Rows.Count, 2).End(xlUp).Row 

その後、ダイナミックレンジを利用して最後の行までオートフィルを行います。

 Range("E5").AutoFill Destination:=Range("E5:E" & last_row) 

データセットに何行追加しても、このVBAコードはそれらを識別し、数式でそれらをオートフィルすることに成功します。

ダイナミックレンジとは、基本的に範囲を手動で入力する必要がなく、Excelが随時更新してくれることを意味します。

続きを読む Excel VBA: RangeクラスのAutofillメソッドに失敗する

4.VBAでExcelの最後の列までオートフィルを行う

前項で最終行までオートフィルを行ったのであれば、Excel VBAで最終列の番号を見つけてオートフィルを行うだけで、簡単に最終列までオートフィルを行うことができます。

次のデータセットを見てください。

ここでは、ある人の3ヶ月の予算を表すデータセットがあります。 ここで、Excel VBAを使って、すべての月の支出を追加し、最後の列に数式をオートフィルすることにします。

ここで、次のコードを入力します。

 Sub last_used_column() Dim last_row As Long last_column = Cells(6, Columns.Count).End(xlToLeft).Column Range("D9").Formula = "=SUM(D6:D8)" Range("D9").AutoFill Destination:=Range("D9", Cells(9, last_column)) End Sub 

last_column = Cells(6, Columns.Count).End(xlToLeft).Column: 6行目から最後に使用された列を返します。 データセットから開始する行を任意に選択することができます。

Range("D9").Formula = "=SUM(D6:D8)": の費用を追加しています。 3ヶ月間(1月、2月、3月)。

Range("D9").AutoFill Destination:=Range("D9", Cells(9, last_column)).Range("D9").AutoFill。 結果が得られたら、オートフィルを使用します。 ここでは、メインの行は行番号9です。 すべてのデータはこの行に入ります。 カラムからオートフィルを開始します。 D で取得した最後に使用されたカラムに変換します。 最後のカラム .

マクロを実行すると、次のような出力が表示されます。

このように、VBAを使ってExcelの最後の列まで数式をオートフィルすることに成功しました。

続きを読む Excelで列をオートフィルする方法

5.VBAでExcelの最終行に連番をオートフィルする

VBAのオートフィルを使えば、連番もオートフィルできます。 ここでは xlFillSeries を入力すると、Excelがそのパターンを理解し、そのパターンで埋め尽くします。

次のスクリーンショットをご覧ください。

ここで、いくつかの名前があります。 そして、それらに連続的にIDを与えたいと思います。 これを行うには、VBAのオートフィルを使用することにします。

静的範囲での連番オートフィル。

 Sub sequential_number_2() Range("C5").AutoFill Destination:=Range("C5:C11"), Type:=xlFillSeries End Sub 

このコードを実行すると、次のような出力が表示されます。

ダイナミックレンジを使用する場合は、以下のコードを使用します。

 Sub sequential_number_1() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("C5").AutoFill Destination:=Range("C5:C" & last_row), Type:=xlFillSeries End Sub. 

last_row = Cells(Rows.Count, 2).End(xlUp).Row: B列から最後に使用された行を返します。

Range("C5").AutoFill Destination:=Range("C5:C" & last_row), Type:=xlFillSeries: のIDを取ることになる。 セルC5 で、最後に使用された行にオートフィルする。 C を使用しています。 xlFillSeries ,

どちらの場合も、同じ出力が得られます。

このように、VBAのコードを使って、Excelで連番を自動入力することに成功しました。

続きを読む 連番を埋めるためのExcel公式は、隠された行をスキップする

💬覚えておくべきこと

することができます。 自動入力を停止する 欲しくなければいろいろな意味で .

複数の行と列を同時にオートフィルすることはできません。 1つずつ行ってください。

結論

最後に、このチュートリアルで、VBAコードを使用して最後の行に数式をオートフィルするための有用な知識の一部を提供できたと思います。 これらの手順をすべて学び、あなたのデータセットに適用することをお勧めします。 練習用ワークブックをダウンロードし、自分でこれらを試してください。 また、コメント欄で自由にフィードバックしてください。 あなたの貴重なフィードバックにより、このようなチュートリアルを作成するモチベーションを保つことができます。これ

ホームページのチェックをお忘れなく Exceldemy.com Excelにまつわる様々なトラブルや解決策をご紹介します。

新しい手法を学び続け、成長し続ける

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。