Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6828 / 13644 ツリー ←次へ | 前へ→

【42852】検索のファイル指定 hitosi 06/9/23(土) 12:28 質問[未読]
【42854】Re:検索のファイル指定 かみちゃん 06/9/23(土) 12:37 発言[未読]
【42856】Re:検索のファイル指定 hitosi 06/9/23(土) 12:58 発言[未読]
【42858】Re:検索のファイル指定 かみちゃん 06/9/23(土) 13:14 発言[未読]
【42874】Re:検索のファイル指定 hitosi 06/9/24(日) 8:30 質問[未読]
【42875】Re:検索のファイル指定 かみちゃん 06/9/24(日) 8:53 発言[未読]
【42877】Re:検索のファイル指定 hitosi 06/9/24(日) 16:01 質問[未読]
【42879】Re:検索のファイル指定 ぱっせんじゃー 06/9/24(日) 16:38 発言[未読]
【42880】Re:検索のファイル指定 hitosi 06/9/24(日) 16:53 発言[未読]
【42881】Re:検索のファイル指定 ぱっせんじゃー 06/9/24(日) 17:14 発言[未読]
【42884】Re:検索のファイル指定 hitosi 06/9/24(日) 17:32 質問[未読]
【42885】Re:検索のファイル指定 かみちゃん 06/9/24(日) 17:40 発言[未読]
【42886】Re:検索のファイル指定 ぱっせんじゃー 06/9/24(日) 17:42 発言[未読]
【42889】Re:検索のファイル指定 hitosi 06/9/24(日) 18:33 発言[未読]
【42890】Re:検索のファイル指定 かみちゃん 06/9/24(日) 18:43 発言[未読]
【42891】Re:検索のファイル指定 ぱっせんじゃー 06/9/24(日) 18:43 発言[未読]
【42894】Re:検索のファイル指定 かみちゃん 06/9/24(日) 19:14 発言[未読]
【42893】Re:検索のファイル指定 かみちゃん 06/9/24(日) 19:10 発言[未読]

【42852】検索のファイル指定
質問  hitosi  - 06/9/23(土) 12:28 -

引用なし
パスワード
   検索するとき二指定する”FileType”の指定方法を教えてください。
普通にfiletype = "*.txt"としてもエラーがでるんです。
ぜひ教えてください

【42854】Re:検索のファイル指定
発言  かみちゃん  - 06/9/23(土) 12:37 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>ぜひ教えてください

どういうコードにしているのかがまったくわかりませんので、見当違いかもしれませんが、
http://www.moug.net/tech/exvba/0060051.htm
および
FileTypeプロパティをヘルプで調べてみてください。

【42856】Re:検索のファイル指定
発言  hitosi  - 06/9/23(土) 12:58 -

引用なし
パスワード
   With Application.FileSearch
  .NewSearch
  .LookIn = "C:\My Documents"
  .SearchSubFolders = True
  .FileName = "Run"
  .MatchTextExactly = True
  .FileType = "*.txt"
  If .Execute() > 0 Then
    MsgBox .FoundFiles.Count & _" 個のファイルが見つかりました。"     
    For i = 1 To .FoundFiles.Count
      MsgBox .FoundFiles(i)
    Next i
  Else
    MsgBox "検索条件を満たすファイルはありません。"
  End If

End With
見たいな感じです。

【42858】Re:検索のファイル指定
発言  かみちゃん  - 06/9/23(土) 13:14 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>  .FileName = "Run"
>  .MatchTextExactly = True
>  .FileType = "*.txt"

今度は、何がしたいのかわかりません。
FileNameプロパティとFileTypeプロパティのヘルプは確認されていますか?
FileNameが"Run"って何がしたいのでしょうか?

【42874】Re:検索のファイル指定
質問  hitosi  - 06/9/24(日) 8:30 -

引用なし
パスワード
   すみません。さっきのはHELPから取ったやつです。
大体あんな感じで検索するんですが、FILETYPEのところがわかんないんです。HELPでみても例が.filetype = msoFileTypeOfficeFiles としか載ってないんです。TXTファイルとか、TIFファイルとかの指定の方法が分からないんです。教えてください

【42875】Re:検索のファイル指定
発言  かみちゃん  - 06/9/24(日) 8:53 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> FileTypeのところがわからない

hitosi さんが何をしたいのかが今ひとつわからないのですが、
FileTypeプロパティとFileNameプロパティの使い方を混同されているように思います。
たぶん以下のような感じでできます。

Sub Test()
 Dim i As Integer

 With Application.FileSearch
  .NewSearch
  .LookIn = "C:\My Documents"
  .SearchSubFolders = True
  .Filename = "*.txt" '★
  .MatchTextExactly = True
  .FileType = msoFileTypeAllFiles '★
  If .Execute() > 0 Then
    MsgBox .FoundFiles.Count & " 個のファイルが見つかりました。"
    For i = 1 To .FoundFiles.Count
      MsgBox .FoundFiles(i)
    Next i
  Else
    MsgBox "検索条件を満たすファイルはありません。"
  End If
 End With
End Sub

あと、ヘルプでわからなければ、過去ログを検索するのもひとつだと思いますよ。
私はそうしています。

【42877】Re:検索のファイル指定
質問  hitosi  - 06/9/24(日) 16:01 -

引用なし
パスワード
   検索するファイル名はもう決まってるんですが、
そのファイルがtifファイルなんです。
それで、TIFファイルだけ検索することってできないでしょうか?

【42879】Re:検索のファイル指定
発言  ぱっせんじゃー  - 06/9/24(日) 16:38 -

引用なし
パスワード
   '★の部分をよく見ましょう。

【42880】Re:検索のファイル指定
発言  hitosi  - 06/9/24(日) 16:53 -

引用なし
パスワード
   ごめんなさい。よく分かりません。

【42881】Re:検索のファイル指定
発言  ぱっせんじゃー  - 06/9/24(日) 17:14 -

引用なし
パスワード
   ↓のように変更するだけですよ。

.Filename = "*.txt" '★

.Filename = "*.tif" '★

【42884】Re:検索のファイル指定
質問  hitosi  - 06/9/24(日) 17:32 -

引用なし
パスワード
   説明が悪いようですね。すみません。
8万件のTIFファイルがあって、その中から1万8千件のTIFファイルを
検索して、ある特定のフォルダにコピーするんです。
それで、Cドライブのすべてのファイル中からそのファイルを探すより、
CドライブのTIFファイルの中から探したほうが断然早いですよね。
で、その検索なんですけど、ファイル名は一覧であるんです。
たとえば1.tifというファイルがあるとすると、
その1.tifをCドライブの中のTIFファイルの中から探したいんです。
すみません。分かりますか?

【42885】Re:検索のファイル指定
発言  かみちゃん  - 06/9/24(日) 17:40 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>で、その検索なんですけど、ファイル名は一覧であるんです。
>たとえば1.tifというファイルがあるとすると、
>その1.tifをCドライブの中のTIFファイルの中から探したい

そのようなこと今までどこで説明されていますか?
とにかく、まずは、[#42881]を試されたのでしょうか?
それが確認できてから、何がしたいのかを再度きちんと説明しませんか?
なぜなら、質問をそのまま受け取ると、1.tifのフルパスを取得したいとしか思えないのですが・・・

【42886】Re:検索のファイル指定
発言  ぱっせんじゃー  - 06/9/24(日) 17:42 -

引用なし
パスワード
   検索したいファイル名に規則性(tifであること以外)
はありますか?
でないと、18000通りの検索をすることになると思い
ますよ。
フォルダだけでも絞り込めないですか?

【42889】Re:検索のファイル指定
発言  hitosi  - 06/9/24(日) 18:33 -

引用なし
パスワード
   これは上司から作ってくれといわれているんですが、まだそのコピーするファイルのリストが届いてないんです。で、多分そのリストが届いたらそこにフォルダ名も書いてあると思うんです。
だから多分検索場所を少しは絞り込めるとは思うんですが・・・。

↓は僕なりに色々と考えて作ったんです。
シートのA列にコピーするファイルをすべて入力する予定です。
多分↓を見ると僕がしたいことを分かってもらえると思うのですが。
Sub aaa()
On Err GoTo エラー

Dim a As Integer
Dim b As String
Dim c As String
Range("a1").Select
a = 1
Application.Cursor = xlWait
MkDir "c:\コピー先"
Do
With Application.FileSearch
  .NewSearch
  .LookIn = "C:\"
  .SearchSubFolders = True
  .Filename = ActiveCell
  .FileType = ここが分かりません
  If .Execute() > 0 Then
    For i = 1 To .FoundFiles.Count
      b = .FoundFiles(i)
      c = "c:\コピー先\" + ActiveCell
      FileCopy b, c
    Next i
  Else
    MsgBox "ファイルがありません。( & activecell.value & )"
  End If
End With
ActiveCell.Offset(1, 0).Select
a = a + 1
Loop Until a = 18000
Application.Cursor = xlDefault
Exit Sub
エラー:
MsgBox "エラーが発生しました"
End Sub

filetypeさえできれば多分いくと思うんですが。

【42890】Re:検索のファイル指定
発言  かみちゃん  - 06/9/24(日) 18:43 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>FileTypeさえできれば多分いくと思う

[#42875]は、まったく試されていないのでしょうか?
できたか、できていないかさえ教えていただけていないので、何ともいえません。

【42891】Re:検索のファイル指定
発言  ぱっせんじゃー  - 06/9/24(日) 18:43 -

引用なし
パスワード
   FileType プロパティ
をVBAヘルプで調べましょう。
でも結局
かみちゃんさんのコードのとおりになりますよ。

【42893】Re:検索のファイル指定
発言  かみちゃん  - 06/9/24(日) 19:10 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> これは上司から作ってくれといわれているんですが、まだそのコピーするファイ
> ルのリストが届いてないんです。で、多分そのリストが届いたらそこにフォルダ
> 名も書いてあると思うんです。
> だから多分検索場所を少しは絞り込めるとは思うんですが・・・。
>
>↓は僕なりに色々と考えて作ったんです。
>シートのA列にコピーするファイルをすべて入力する予定です。

それであれば、私だったら、以下のようなコードにします。
ファイル検索の部分は、ほとんど変えていません。
★の部分をよーく確認してください。前回とまったく変えていません。

Sub aaa2()
 Dim strCopyPath As String
 Dim c As Range
 Dim LastCell As Range
 
 On Err GoTo エラー
 Application.Cursor = xlWait
 
 strCopyPath = "c:\コピー先"
 MkDir strCopyPath
 
 Set LastCell = Cells(Rows.Count, 1).End(xlUp)
 For Each c In Range("A1", LastCell)
  With Application.FileSearch
   .NewSearch
   .LookIn = "C:\"
   .SearchSubFolders = True
   .Filename = c.Value
   .FileType = msoFileTypeAllFiles '★
   If .Execute() > 0 Then
    For i = 1 To .FoundFiles.Count
     FileCopy .FoundFiles(i), strCopyPath & "\" + ActiveCell
    Next i
   Else
    MsgBox "ファイルがありません。(" & c.Value & ")"
   End If
  End With
 Next
 Application.Cursor = xlDefault
 Exit Sub
エラー:
 MsgBox "エラーが発生しました"
End Sub

ただし!届く予定になっているリストがフォルダ名からのフルパスが書かれている
のであれば、このような回りくどいことをしなくてもいいですよ。
今回のサンプルは、あくまで、ファイル名だけ書かれていて、そのパスをひとつず
つ検索するパターンです。
ただし、C:\のサブフォルダに同じファイル名があれば、後から見つかったファイ
ルを上書きしますし、そもそも、C:\からサブフォルダまでひとつずつ繰り返して
検索するのか、想像以上に時間がかかると思います。

何がしたいのか、未だにさっぱりわかりませんが、処理の見直しをおすすめします。

【42894】Re:検索のファイル指定
発言  かみちゃん  - 06/9/24(日) 19:14 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>FileType プロパティ
>をVBAヘルプで調べましょう。

MsoFileType クラスの一覧とその内容を調べてみましたので、参考にしてください。

FileType              内容
msoFileTypeAllFiles         All files.
msoFileTypeBinders         Microsoft Binder file (*.obd).
msoFileTypeCalendarItem       Calendar item file (*.ics or *.vsc).
msoFileTypeContactItem       Contact item file (*.vcf).
msoFileTypeDatabases        Database file (*.mdb).
msoFileTypeDataConnectionFiles   Data connection file (*.mdf).
msoFileTypeDesignerFiles Visual   Basic Active Designer file (*.dsr).
msoFileTypeDocumentImagingFiles   Microsoft Document Imaging file (*.mdi).
msoFileTypeExcelWorkbooks      Microsoft Excel workbook (*.wbk).
msoFileTypeJournalItem Microsoft  Outlook Journal item
msoFileTypeMailItem         Mail item file (*.msg).
msoFileTypeNoteItem         Microsoft Outlook Note item.
msoFileTypeOfficeFiles       Files with any of the following extensions: *.doc, *.xls, *.ppt, *.pps, *.obd, *.mdb, *.mpd, *.dot, *.xlt, *.pot, *.obt, *.htm, or *.html.
msoFileTypeOutlookItems       Any Microsoft Outlook item file.
msoFileTypePhotoDrawFiles      PhotoDraw item file (*.mix).
msoFileTypePowerPointPresentations PowerPoint presentation file (*.ppt), PowerPoint template file (*.pot), or PowerPoint slide show file (*.pps).
msoFileTypeProjectFiles       Project file (*.mpd).
msoFileTypePublisherFiles      Microsoft Publisher file (*.pub)
msoFileTypeTaskItem         Microsoft Outlook task item.
msoFileTypeTemplates        Microsoft PowerPoint template (*.pot), Word template (*.dot), Excel template (*.xlt).
msoFileTypeVisioFiles        Microsoft Visio file (*.vsd).
msoFileTypeWebPages         HTML file (*.htm or *.html).
msoFileTypeWordDocuments      Microsoft Word document file (*.doc).

誤っているところがあれば、ご指摘いただけると幸いです。
ちなみに、出展元は以下です。
http://msdn2.microsoft.com/zh-CN/library/microsoft.office.core.msofiletype.aspx

6828 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free