Excelブックが複数あり、その中にある”みかん”シートのシートがあった場合のみ
データを取得したいのですが、下記の記述をしたのですが、ブックを1ブックづつ開くようにしたので
処理時間がかかってしまいます。処理時間を短縮するにはどのようにすればいいでしょうか?
また、最終的には、1つのブック内に”みかん”、”リンゴ”の複数の条件を盛り込みたいのですが
初心者では検討つきません。おしえてください。
Sub みかん()
'-------ブック抽出---------------'
Dim buf As String, i As Long, Dinm As String, gyou As Variant
Dinm = "C:\ブック格納"
buf = Dir(Dinm & "\*.xls")
'------ファイルを連結する-------’
Do While buf <> ""
Workbooks.Open (Dinm & "\" & buf) '対象ファイルを開く’
Dim ws As Worksheet, flag As Boolean
For Each ws In Worksheets
If ws.Name = "みかん" Then flag = True
Next ws
If flag = True Then '☆みかんシートが存在だったら。以下の処理
Worksheets("みかん").Activate
Dim a As Long
Dim b As Long
a = 18
b = Cells(Rows.Count, "B").End(xlUp).Row 'B列の最終行を取得’
Rows(a & ":" & b).Copy
ThisWorkbook.Activate
Worksheets("みかん").Select
b = Cells(Rows.Count, "B").End(xlUp).Row 'マクロファイルのB列の最終行を取得’
c = b + 1
Range("A" & c).PasteSpecial Paste:=xlPasteValues 'セルに値のみ張り付ける’
'商品番号のコピー’
Workbooks(buf).Activate
Worksheets("みかん").Select
gyou = Range("B6")
'商品番号の貼付’
ThisWorkbook.Activate
Worksheets("みかん").Select
c = Cells(Rows.Count, "DO").End(xlUp).Row 'マクロファイルのCG列の最終行を取得’
b = Cells(Rows.Count, "B").End(xlUp).Row 'マクロファイルのB列の最終行を取得’
d = c + 1
For i = d To b
Cells(i, 119) = gyou
Next i
flag = False
'-------事後処理---------'
Workbooks(buf).Activate 'コピー元をアクティブへ’
Application.CutCopyMode = False
Workbooks(buf).Close SaveChanges:=False
buf = Dir()
Else
'-------事後処理---------'
Workbooks(buf).Activate 'コピー元をアクティブへ’
Application.CutCopyMode = False
Workbooks(buf).Close SaveChanges:=False
buf = Dir()
End If
Loop
End Sub
No.1ベストアンサー
- 回答日時:
Excelファイルを開かずにシート名を取得
http://excel-ubara.com/excelvba5/EXCEL121.html
方法としてはあるようですが、
・ExcelBookの量
・うちのは古いのでキチンと検証(今のExcelに対応)が出来ない
と言う問題はありますけど。
それに『開かなかった場合』のセル範囲の取得を考えると、『Sheetの存在の確認』のみに絞った方がよいかな?
ただ最近のExcelに『ExecuteExcel4Macro』があるのかはわからないので、オブジェクトブラウザ等で確認し、
仮になかったならこの回答は飛ばして下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
ファイルを閉じたままの外部参照で最終行の行数取得
Visual Basic(VBA)
-
参照先のブックを開かずに内容をコピーしたい
Excel(エクセル)
-
-
4
VBAで複数のブックを開かずに処理する方法
Visual Basic(VBA)
-
5
【VBA】EXCELブックを開かずにシート名を取得したい
Visual Basic(VBA)
-
6
エクセルで別ブックをバックグラウンドでオープンする方法
Excel(エクセル)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
VBA EXCEL 開かずにデータ操作
その他(Microsoft Office)
-
9
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
10
Excel VBA ExecuteExcel4Macroについて
その他(Microsoft Office)
-
11
VBA ExecuteExcel4Macro 型が一致しません
Excel(エクセル)
-
12
VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。
Visual Basic(VBA)
-
13
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
14
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
Excel VBA別ブックのシートをコピーするには
Visual Basic(VBA)
-
17
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
18
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
19
文字列にアルファベットが何文字目に含まれているかの算出
Visual Basic(VBA)
-
20
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロについて教え...
-
Excelのマクロコードについて教...
-
(マクロ)データをAブックからB...
-
VBA 複数のエクセルから一つの...
-
VBSでExcelのオープン確認
-
VBA 実行時エラー 2147024893
-
Excelマクロ 該当する値の行番...
-
Excel VBAでRangeの指定をA1書...
-
エクセルVBAで読み取りパスワー...
-
配列に使うArry関数について
-
VBAで別ブックのシートを指定し...
-
拡張メタファイルにて貼り付け
-
VBA コードを実行すると画面が...
-
【マクロ】違うフォルダにある...
-
ワイルドカード「*」を使うとう...
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
フォルダー内の支店ごとのブッ...
-
ユーザーフォームの切り替えに...
-
元データ(ピボッド)を開かずマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
(マクロ)データをAブックからB...
-
VBS Bookを閉じるコード
-
VBA 別ブックからコピペしたい...
-
VBA 複数のエクセルから一つの...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】インデックスが有...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA コードを実行すると画面が...
-
【VBA】全シートの計算式を全て...
-
複数のエクセルブックをひとつ...
-
VBA 実行時エラー 2147024893
-
ExcelのVBAです。フォルダ内の...
おすすめ情報