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


タオル  2005-06-25 03:24:58  No: 90692

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

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

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

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

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

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


My  2005-06-25 20:53:14  No: 90694

>タオル

For Each sh In .Sheets

For Each sh In .WorkSheets
でしょ。

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

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


LESIA  2005-06-26 13:24:07  No: 90695

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


ガッ  2005-06-26 18:32:49  No: 90696

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加