A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>ブックの1枚目のシートのみをコピーすることはできますか?
For i = 1 To Worksheets.Count
Sheets(i).Activate
・・・
・・・
Next
で全てのシートを繰り返していますので
Sheets(1).Activate
For k = 1 To Range("A" & Rows.Count).End(xlUp).Row
.Range("A" & j).Value = buf
.Range("B" & j).Value = Sheets(i).Name
.Range("C" & j & ":E" & j).Value = Range("A" & k & ":C" & k).Value
j = j + 1
Next
で十分ではないでしょうか。
No.2
- 回答日時:
>ブックの1枚目のシートのみをコピーすることはできますか?
以下のように加えると良いと思います。
他のコードに貼り付ける時は、親オブジェクトを考慮してください。
cnt = ThisWorkbook.Worksheets.Count
'*ブックの一枚目のシートのコピー
(親オブジェクト).Worksheets(1).Copy After:=ThisWorkbook.Worksheets(cnt)
On Error Resume Next
ActiveSheet.Name = FName
On Error GoTo 0
'//
Sub OpenSheetGetData()
'No. 9036670
Dim MyPath As String
Dim FName As String
Dim i As Long, j As Long, cnt As Long
Dim sh As Variant
Dim Lastrow As Long
Dim acSh As Worksheet
Set acSh = ActiveSheet
j = 2
MyPath = ThisWorkbook.Path & "\"
FName = Dir(MyPath & "*.xls?", vbNormal)
Do While FName <> ""
If FName <> "." And FName <> ".." Then
If (GetAttr(MyPath & FName) And vbNormal) = vbNormal Then
With Workbooks.Open(MyPath & FName)
For Each sh In .Worksheets
With sh
Lastrow = .Cells(Rows.Count, "B").End(xlUp).Row
'リミット(10000行以下のものを対象)
If Lastrow > 5 And Lastrow < 10000 Then
For i = 5 To Lastrow
acSh.Cells(j, 2).Resize(, 18).Value = .Cells(i, 2).Resize(, 18).Value
j = j + 1
Next i
End If
End With
Next sh
cnt = ThisWorkbook.Worksheets.Count
'*ブックの一枚目のシートのコピー
.Worksheets(1).Copy After:=ThisWorkbook.Worksheets(cnt)
On Error Resume Next
ActiveSheet.Name = FName
On Error GoTo 0
.Close False
End With
End If
End If
FName = Dir()
Loop
End Sub
'///
No.1
- 回答日時:
参考になるかと
https://oshiete.goo.ne.jp/qa/9029811.html
で同じような回答をいたしました。
5行目からであれば
For k = 1 To Range("A" & Rows.Count).End(xlUp).Row
を
For k = 5 To Range("A" & Rows.Count).End(xlUp).Row
に
B列からS列なら
.Range("C" & j & ":T" & j).Value = Range("B" & k & ":S" & k).Value
です。
A列には ファイル名
B列には シート名が入ります。
不要であれば
.Range("A" & j).Value = buf
.Range("B" & j).Value = Sheets(i).Name
を削除してください。
このファイルが、その特定のフォルダ内に保存して使用します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) 複数のExcelブックのシート1の内容を1つのExcelブックにコピー貼り付けたいのでvbaコードを 7 2023/02/10 23:20
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Visual Basic(VBA) Excel VBA 複数ブックシートごとにデータを統合する方法について 4 2022/05/20 14:23
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) エクセルの複数ブックのシートを1つまとめたい 都道府県ごとに47ブックがあり、そのシートのデータを1 5 2022/11/15 14:57
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数について教えて...
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
北九州市にあった「井筒屋ブッ...
-
WorkBooksをオープンさせずにシ...
-
シート3枚あるはずが1枚しか...
-
Excelでブックの共有を掛けると...
-
行、列の挿入がリンク先に反映...
-
【ExcelVBA】シートをそれぞれ...
-
エクセルで50行ごとに区切った...
-
Excel VBAでブックを閉じる時、...
-
EXECLの変更を保存せずにブック...
-
Excelで、複数ブックの複数シー...
-
エクセルで別ブックをバックグ...
-
リンク元ブックのPWが分からな...
-
VBA: ブックをアクティベイトで...
-
外部ブック参照が#REF!になって...
-
エクセルで参照しているデータ...
-
captionの値と実際の表示名が合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
エクセルで参照しているデータ...
-
Excel(2010)のフィルターが保...
-
Excelで複数ブックの同一セルに...
-
VBA バックグラウンドで別ブッ...
-
エクセルで50行ごとに区切った...
-
エクセルで「ディスクがいっぱ...
-
エクセルにおける,「ブック」...
-
エクセルファイルを開かずにpdf...
-
フォルダ内の複数ファイルから...
-
ブックのピボットを別ブックに...
-
エクセルシートの一部を送りたい
-
エクセル2016です。「ブッ...
-
エクセルで別ブックをバックグ...
-
フォルダ内の複数ファイルから...
-
複数ファイルから特定シートの...
おすすめ情報
ありがとうございます!できました。
もうひとつわがままなことなのですが、ブックの1枚目のシートのみをコピーすることはできますか?