[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォルダ内のファイルをワードで開く』(初心者です)
初心者です。どなたかお願い致します。
複数のRTFファイルが入っているフォルダがあり、
その中のファイルを1つ1つ読み込み、
ファイル内の情報をエクセルのシートに抽出したいです。
(エクセルVBAからワードを開いています。)
'RTFファイルが入っているフォルダを選択する。
Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject")
Dim FolderPath As String FolderPath = "C:\test\test2" ' ↑ファイルが入っているフォルダ名を入れる。' ' Dim myFile As Object Dim i As Long i = 1 For Each myFile In fso.GetFolder(FolderPath).Files ' 'フォルダ内のファイルをワードで開く。 objWord = CreateObject("Word.Application") Set objDoc = objWord.documents.Open(myFile) objWord.Visible = True ' (処理のコマンドは省略)
i = i + 1
Next ' End Sub
以上のようなコマンドを入力したのですが、
「Set objDoc = objWord.documents.Open(myFile)」
のところがうまくいかないようです。
ご教示お願いします。
< 使用 Excel:Excel2007、使用 OS:unknown >
> objWord = CreateObject("Word.Application") ↓ set objword・・・・ また、開く前にワードファイルなのか拡張子でも見たらいいと思います。 BJ
ファイル拡張子は「.rtf」のリッチテキストファイルです。
ちなみに「Set objDoc = objWord.documents.Open(myFile)」のmyFileの部分に直接パス名+ファイル名を入れた場合はうまくいきます。
(初心者です) 2014/02/24(月) 16:49
だから、拡張子を見て開くかの判断が必要なんです。 たとえば、エクセルファイルとかだとエラーになるんじゃないかと。
If right(myFile,3) = "doc" とかの。
おまけ、 Dim myFile As Object ↓ Dim myFile As string BJ
今回の場合は Object でよいのでは? 入るのは File オブジェクトですから。
拡張子を見るのであれば、こんな感じでしょうか。 Const FolderPath = "C:\test\test2" Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject")
Set objWord = CreateObject("Word.Application") objWord.Visible = True For Each myFile In fso.GetFolder(FolderPath).Files If fso.GetExtensionName(myFile.Path) = "rtf" Then Set objDoc = objWord.documents.Open(myFile.Path) 処理 objDoc.Close End If Next (Mook) 2014/02/24(月) 17:03
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.