![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エクセルVBA、数式の入ったセルのコピーについて質問です。よろしくお願いします。
シートのA列は日付の入ったセルがあり、データを更新する度に行が追加されていきます。
数式(1)~(3)は、それぞれ異なる計算式が入っており、日付データを参照して計算を行っています。
A B C D
1 日付データ 数式(1) 数式(2) 数式(3)
2 日付データ 数式(1) 数式(2) 数式(3)
3 日付データ
4 日付データ
5 日付データ
A列にデータが追加したときに、B~D列の数式をA列の最終行までコピーしたいのですが、
どのようなコードを書けばよいでしょうか?
ちなみに、1行目のB~D列には、データ更新の有無に関わらず、必ず数式が入っているものとします。
何かよいアドバイスがあればよろしくお願いします。
【補足】
単純に考えると、B1~D1をA列の最終行までAUTOFILLすれば良いのでしょうが、データ数がかなり多く、
この方法だと時間がかかってしまいます。A列のデータ追加前の数式セルの最終行から、追加後の最終行までとすると、処理は早くなるのでしょうか?
No.1ベストアンサー
- 回答日時:
With ActiveSheet 'とか Sheets("Sheet1")
.Range(.Cells(.Rows.Count, 4).End(xlUp), .Cells(.Rows.Count, 1).End(xlUp).Offset(, 1)).FillDown
End With
こんな感じですが、
手作業でも、そんなに手間ではないです。
例えば数式が10行目まではいっているなら、
B10:D10 を選択して、右下のフィルハンドルをダブルクリック。
だけです。
早々のご回答ありがとうございます。
B~D列の最終行を探してコピーするということですね。
FillDownを使うのは勉強になりました。
もう一つアドバイス頂いた以下の件ですが・・・
B10:D10 を選択して、右下のフィルハンドルをダブルクリック。
だけです。
→今回以来した数式コピーは、「データ更新」という一連の作業の一部で、データベースとなる部分を加工する部分であるため、ユーザー側にはシートを見せないようにしています。
コマンドボタンで一気に解決したく、質問いたしました。
No.2
- 回答日時:
A列に新しいデータを追加したときにその一行上まで数式はコピーされてるはずですよね。
ですので単純にPrivate Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Then
Range(Cells(Target.Row - 1, Target.Column + 1), Cells(Target.Row - 1, Target.Column + 3)).Copy
Target.Offset(0, 1).PasteSpecial
End If
Application.EnableEvents = True
Application.CutCopyMode = False
End Sub
でいいのではないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) Countifよりも早く重複数をカウントする方法ありますか? 18 2022/07/04 13:39
- その他(Microsoft Office) excel テーブル 4 2023/03/18 16:11
- Excel(エクセル) エクセル関数のスペシャリストの方、教えてください。 写真のように A列にはデータ C列にはデータの中 7 2022/04/09 00:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Listviewのデータを上から順番...
-
【Excel VBA】先頭の「0」飛び...
-
VBAでページ番号、ページ最終行...
-
DataGrdViewに関連付けたデータ...
-
GridViewを自動的にスクロール...
-
VB6 → EXCEL にデーター出力
-
エクセルVBAによるマトリク...
-
EXCELで任意の文字列データにあ...
-
トップページHTMLに更新日を自...
-
アクセス2007 レポートで表示さ...
-
C# 一覧とデータテーブルを比較...
-
sqlを元にwebページを表示
-
VB DB更新時にパラメーターへ...
-
.NET SqlDataReader のレコー...
-
,区切りでテキストで書かれたテ...
-
GASでスプレッドシートの一番上...
-
カンマデータの任意行の入れ替...
-
Excel97でピボットテーブルの...
-
月間検索回数
-
VB.NETで DataRow()を利用して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
DataGrdViewに関連付けたデータ...
-
Listviewのデータを上から順番...
-
GASでスプレッドシートの一番上...
-
GridViewにバインドせずにデー...
-
コンパイルエラーSubまたは...
-
.NET SqlDataReader のレコー...
-
VBAでページ番号、ページ最終行...
-
DataGridViewで表示に制限をつ...
-
MSFlexGridのデータ表示位置の設定
-
ASP C# データベースから1行取得
-
【ASP.NET MVC】一覧編集画面
-
C# データ配列から画像を作成す...
-
VBA ピボットテーブル自動更新
-
エクセルマクロ小数点桁数
-
VBによる可変長ファイルの読み書き
-
ASP.Net ObjectDataSource
-
GridViewを自動的にスクロール...
-
ListViewで条件によって表示を...
-
コンボボックス
おすすめ情報