dポイントプレゼントキャンペーン実施中!

vbaに詳しい方教えてください!
エクセルとワードが両方まざっているファイルを上から順番に印刷していくというものを組みたいのですが教えてほしいです。D2にファイル名をいれて動くようにしたいです!

質問者からの補足コメント

  • やっぱりD2のは無視していいです

      補足日時:2018/02/14 11:33
  • ファイル名を取得して実行できるようにしたいです!

      補足日時:2018/02/14 12:37

A 回答 (7件)

こんにちは。



この順序は分かりませんので、後で、必要に応じてソートを掛けてください。
一旦、配列にストックされますが、その配列の上限が2000ですから、それ以上でしたら、
myArray の中の数字を増やしてください。

Sub OfficeFilesListOut()
  Dim FName, MyPath
  Dim i As Long, j As Long
  ReDim myArray(2000, 1)
  'パスの場所(任意)
  MyPath = Environ("HOMEPATH") & "\DOCUMENTS\" '末尾は¥を入れること

  FName = Dir(MyPath & "*.*", vbNormal)
  Do While FName <> ""
    If FName <> "." And FName <> ".." Then
      If FName Like "?*.xls*" Or FName Like "?*.doc*" Then
        If (GetAttr(MyPath & FName) And vbNormal) = vbNormal Then
          myArray(i, 0) = FName
          myArray(i, 1) = FileDateTime(MyPath & FName)
          i = i + 1
          If i > 2000 Then Exit Sub
        End If
      End If
    End If
    FName = Dir
  Loop
  Application.ScreenUpdating = False
  Cells(1, 1).Value = "ファイル名"
  Cells(1, 2).Value = "更新日"
  For j = 0 To i - 1
   Cells(j + 2, 1).Value = myArray(j, 0)
   Cells(j + 2, 2).Value = myArray(j, 1)
  Next
  Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

やってみたけど動きませんでした( ; ; )a1にファイル名、b1に更新日をいれたのですが、、

お礼日時:2018/02/20 10:05

#6の回答者です。



'パスの場所(任意)
MyPath = Environ("HOMEPATH") & "\DOCUMENTS\" '末尾は¥を入れること

ここは、貴方ご自身が書き換えてください。
もしくは、
MyPath ....
If MsgBox(MyPath, vbOKCancel) = vbCancel Then Exit Sub 'これはを加えて確認を取ってください。
    • good
    • 0

No4です。



はっきりとはわかりませんが、補足に示された順序はファイル名の昇順のように見受けられます。
No4で挙げた参考サイトで利用しているDir関数は、同様の順にピックアップしてくれますので、ほぼそのままで利用できると思います。
(違う順にしたいときは、一旦ストックして並び替えを行う必要がありますが、どうやらその必要はなさそう)

一方、参考サイトではファイルの種類を指定している例になっていますが、ご質問の場合は混在しているので、種類は指定せずに取得して、VBA側でエクセルとワードに該当するファイルだけを選別すればよいことになります。
指定フォルダにはエクセルとワードしか存在しないというのであれば、選別する必要はないですね
    • good
    • 1

こんにちは



なんだか他の回答様と話がかみ合っていないみたいですが・・・

なさりたいことがよくわかりませんが、ここらあたりを参考にすれば可能かも知れません。
http://officetanaka.net/excel/vba/file/file07.htm
上記はフォルダ内のファイル一覧を取得する場合の一例ですが、一覧表を作成するかわりに印刷するようにすれば良いのかも知れませんね。

>上から順番に印刷していく
いわゆるエクスプローラに表示されるファイルの順序は様々です。
ファイル名順、種類順、サイズ順、更新日時順とか。しかもそれぞれ昇順、降順とありますので、「上から順っていったい何?」ということになります。
    • good
    • 0
この回答へのお礼

1 xlsx
2 doc
3 xlsx
4 xlsx

みたいにフォルダに表示されてて、これを1から順番に印刷していきたいのです。説明が下手ですみません。。

お礼日時:2018/02/14 15:38

いえいえ?上からってどういうことですか?


デスクトップ上にワードとかエクセルのファイルがいくつか開いていてそれを上から印刷すると言う事でしょうか?
もしそれならばVBAのコードはその一番上に有るファイルに記述されていると言う事でしょうか?
    • good
    • 0
この回答へのお礼

フォルダを開くとエクセルのファイルとワードのファイルが混ざっていて、それを一から順番に印刷していきたいです

お礼日時:2018/02/14 14:08

えぇ?



「『ファイルを上から順番に印刷していく』とはどういう事でしょうか?」の質問に「はい!そういうことです!」という答えは無いですよね?何を言っているのですか?

まさかワードにリストが有ると言う事では無いですよね?
    • good
    • 0

「ファイルを上から順番に印刷していく」とはどういう事でしょうか?


エクセルにリストが有ると言う事でしょうか?
    • good
    • 0
この回答へのお礼

はい!そういうことです!エクセルにリストはありません!

お礼日時:2018/02/14 12:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!