間違っているところを正しく教えて下さい。


タオル  2005-06-24 18:24:58  No: 90692  IP: [192.*.*.*]

指定されているフォルダの中に入っているエクセルファイルを
読み込み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

編集 削除
ガッ  2005-06-24 18:57:11  No: 90693  IP: [192.*.*.*]

('A`)漏れ茶化されてるよ…

> 指定されているフォルダの中に入っているエクセルファイルを
> 読み込みA4かA4じゃないかをずっと調べていき、
> A4ではないのがでたらメッセージを出し終了
  →ここまで出来ている。

> 全てのファイルのシートがA4だったら
> 終了としたいのですが…
  →これも出来ていると思われ。

> どうすればよいでしょう?
> ちなみにA4ではないファイル名とかがメッセージ
> ボックスにでればいいのですがそれもなおさらわからなくって。
  →for eachの中にあるifステートメントで.foundfiles(i)を表示するということ?(excel知らない(orz


※ここまでくると誤爆かどうかもわからん。

編集 削除
My  2005-06-25 11:53:14  No: 90694  IP: [192.*.*.*]

>タオル

For Each sh In .Sheets

For Each sh In .WorkSheets
でしょ。

MsgBox ("ファイルを入れてください。")
のあとに、Exit Sub

a()とkは何に使うんですか?

編集 削除
LESIA  2005-06-26 04:24:07  No: 90695  IP: [192.*.*.*]

If .PageSetup.PaperSize <> xlPaperA4 Then
ではなく
If sh.PageSetup.PaperSize <> xlPaperA4 Then
ですね。

編集 削除
ガッ  2005-06-26 09:32:49  No: 90696  IP: [192.*.*.*]

orz:ニセ情報すみません(TT

編集 削除