画像に添付してあるような処理を行いたいのですが、ある行(画像ではK)全体の値すべてを一度検索し、一秒や一分、一時間単位で横のセルにコピーし続けるという処理です。画像では一秒ごとで例を示しているのですが、たとえば00:03:00から00:06:00などの、3分間隔を12:00:00や12:30:50まで処理する、などの処理を行いたいです。また、その際にK行の隣にあるセル(画像ではL)などの範囲も一緒にコピー対象にする、などという処理も追加できれば非常にありがたいです。
VBAに詳しい方のプログラムを知りたいです。よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは!
>たとえば00:03:00から00:06:00などの、3分間隔を12:00:00や12:30:50まで処理する・・・
がいまいち理解できないので、
画像通りの場合の一例です。
元データはSheet1にあるとします。
Sheet2を作業用のSheetとして使用していますので、Sheet2は全く使っていない状態にしておいてください。
標準モジュールです。
Sub Sample1()
Dim i As Long, myMax As Long
Dim lastRow As Long, lastCol As Long
Dim wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
With Worksheets("Sheet1")
'//作業列としてM列を挿入
.Range("M:M").Insert
.Range("M1") = "ダミー"
lastRow = .Cells(Rows.Count, "K").End(xlUp).Row
lastCol = .Cells(2, Columns.Count).End(xlToLeft).Column
If lastRow > 1 And lastCol > Range("N1").Column Then
Range(.Cells(2, "O"), .Cells(lastRow, lastCol)).ClearContents
End If
With Range(.Cells(2, "M"), .Cells(lastRow, "M"))
.Formula = "=ROUND(K2,7)*10^7" '//←浮動小数誤差調整のため
.Value = .Value
End With
.Range("M:M").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
.Range("M:M").AutoFilter field:=1, Criteria1:=wS.Cells(i, "A")
Range(.Cells(2, "K"), .Cells(lastRow, "L")).SpecialCells(xlCellTypeVisible).Copy _
wS.Cells(1, Columns.Count).End(xlToLeft).Offset(, 1)
myMax = WorksheetFunction.Max(myMax, wS.Cells(Rows.Count, (i - 1) * 2).End(xlUp).Row)
Next i
.AutoFilterMode = False
.Range("M:M").Delete
lastCol = wS.Cells(1, Columns.Count).End(xlToLeft).Column
Range(wS.Cells(1, "B"), wS.Cells(myMax, lastCol)).Copy .Range("N2")
.Columns.AutoFit
wS.Cells.Clear
End With
Application.ScreenUpdating = True
End Sub
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) 特定の文字を条件に指定範囲のデータを貼り付けるVBA 3 2023/01/15 06:14
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Visual Basic(VBA) シート間で同じ値があったらコピペ 1 2022/05/08 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
もしかして
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
Do~Loopした回数をカウントしたい
-
インタラクティブの反対語は?
-
自分の不注意で仕事で乗り合い...
-
メルカリのメルカードで買い物...
-
VBA SaveChanges 上書きされない
-
VB.NET Excelを読み込んでDataT...
-
リョウ・・・量?料?
-
C# 画面のちらつきを解消したい
-
2重のDo~Loopは?
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
Do Until rs1.EOF であるレコ...
-
RPGプログラムの*HIVALについて
-
VBAのオートフィルについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
UMLでの例外処理
-
Do~Loopした回数をカウントしたい
-
VB.NET Excelを読み込んでDataT...
-
月度は何て読みますか?
-
findは動くがfindnextがマクロ...
-
リョウ・・・量?料?
-
iD
-
VBA SaveChanges 上書きされない
-
Select Case文でこのようなこと...
-
Loadイベント中にほかのイベン...
-
セルの値が0はクリアするマクロ
おすすめ情報