指定されているフォルダの中に入っているエクセルファイルを
読み込みA4かA4じゃないかをずっと調べていき、
A4ではないのがでたらメッセージを出し終了
全てのファイルのシートがA4だったら
終了としたいのですが…
どうすればよいでしょう?
ちなみにA4ではないファイル名とかがメッセージ
ボックスにでればいいのですがそれもなおさらわからなくって。
Sub ファイルの有無と情報の抽出()
Dim i As Long, j As Long, k As Long
Dim sh As Worksheet
Dim a() As Variant
With Application.FileSearch
.NewSearch
.LookIn = "C:\フォルダ"
.Filename = "*.xls"
'.FileType = msoFileTypeExcelWorkbooks
If .Execute() > 0 Then
ReDim a(1 To .FoundFiles.Count * 50, 1 To 3)
For i = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(i)
With ActiveWorkbook
For Each sh In .Sheets
If .PageSetup.PaperSize <> xlPaperA4 Then
MsgBox "A4以外は数えれない"
Exit Sub
End If
j = j + 1
Next
.Close False
End With
Next
Else
MsgBox ("ファイルを入れてください。")
End If
MsgBox "いいじゃん"
End With
End Sub
('A`)漏れ茶化されてるよ…
> 指定されているフォルダの中に入っているエクセルファイルを
> 読み込みA4かA4じゃないかをずっと調べていき、
> A4ではないのがでたらメッセージを出し終了
→ここまで出来ている。
> 全てのファイルのシートがA4だったら
> 終了としたいのですが…
→これも出来ていると思われ。
> どうすればよいでしょう?
> ちなみにA4ではないファイル名とかがメッセージ
> ボックスにでればいいのですがそれもなおさらわからなくって。
→for eachの中にあるifステートメントで.foundfiles(i)を表示するということ?(excel知らない(orz
※ここまでくると誤爆かどうかもわからん。
>タオル
For Each sh In .Sheets
は
For Each sh In .WorkSheets
でしょ。
MsgBox ("ファイルを入れてください。")
のあとに、Exit Sub
a()とkは何に使うんですか?
If .PageSetup.PaperSize <> xlPaperA4 Then
ではなく
If sh.PageSetup.PaperSize <> xlPaperA4 Then
ですね。
orz:ニセ情報すみません(TT
ツイート | ![]() |