質問: outpos + 1 '書き出し位置を下へずらす End If Next i ' ' End Sub ### 試したこと With .GetForder(filepath).OpenAsTextStreamで エラーがでてしまいます。 ### 補足情報(言語/FW/ツール等のバージョンなど) VBAで作成してます。
回答: >m6u様 横入り失礼します。 提示されたコードですが、下記のように訂正すれば大丈夫です。 ``` Dim fso as Object Set fso = CreateObject("Scripting.FileSystemObject") ``` 参照:OFFICE TANAKA様のサイトの「FileSystemObjectの使い方」 > > http://officetanaka.net/excel/vba/filesystemobject/first.htm > > > あとはm6u様のアドバイス通りです。 ちなみに、参照設定にした場合は下記の通りです。 (参照設定にするか、CreateObjectで定義するかはお好みで。 参照設定にすると、FileSystemObjectのメソッドやプロパティが入力時に自動で表示されます。) ``` Dim fso as New FileSystemObject ``` これで定義すれば、「With fso」 として使用可能です。 (m6u様のアドバイスの「End With」で閉じることも忘れずに。) 私も、FileSystemObjectにつきましては、「参照設定しないと使えない」と、思い込んでいた時期がございます...。Excelマクロを作成する場合、参照設定は「設定したブックのみ」が有効なのと、他の人がソースコードを見た時、「参照設定は外から解りにくい」ので、敢えてオブジェクト宣言で使用される方もいらっしゃるのだとか(「実践ワークシート協会」のツールで、「参照設定」されているオブジェクトが分かるものがあるとか...)。 あと、「もしかしたら」で気になる点が一つございます。 ``` endpos = InStr(str, endword) ``` の位置ですが、先頭から検索して「最初に見つかった文字」でよろしいでしょうか? 同じ文字や文字列が途中にあると、その位置までとなってしまいますので...。 ``` endpos = InStrRev(str, endword) ``` のような、文字列の末尾から検索、というのもございますので、 おせっかいかもしれませんがご参考にしてみてください。