プログラミング

プログラミングに関するフォーラムです。VBAは除きます。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : その他)
VBScriptで、入力テキストファイルのTABコードを","に置換して保存したい
投稿日時: 21/03/21 11:30:49
投稿者: gorby

VBScriptで、入力テキストファイルのTABコードを","に置換して保存するコードを作成中です。また、
保存する際に、ファイル拡張子を.csvに変更したいです。。。。copyメソッドで、ファイル拡張子を変更できるのでしょうか?わからない。。。
VBScriptに詳しい方、教えてください!
なお下記のコードはWinActorというRPAツールの独自関数で、変数 filenameに入力テキストファイルの絶対パスを入れています。
  
Call GetUMSVariable($変数名$, filename)
  
  
----<ここから>----------
Dim temp 'objFileの中身を取得する変数
Dim filename '入力テキストファイルの絶対ファイルパス
  
Set objFS = CreateObject("Scripting.FileSystemObject")
  
Call GetUMSVariable($変数名$, filename)
  
Set objFile = objFS.OpenTextFile(filename,8,False)
  
temp = objFile(0)
  
'tempにTABあれば、すべて","に置換する。
  
  Do
     If InStr(0,temp,vbtab) > 0 Then
        temp = Replace(temp,vbtab,",")
     Else
        Exit Do
     End If
  Loop
  
'変数tempの内容をファイルに入れて保存するコードが分からない!
'ファイル拡張子を.csvに変更して保存するコードが分からない!
  
  
  
objFile.Close
  
----<ここまで>---------

回答
投稿日時: 21/03/22 09:50:00
投稿者: Suzu

https://www.moug.net/tech/acvba/0090005.html
テキストファイル中の文字を削除・置き換える(FSO)
 
が参考になるかと思います。
 
VBAのサンプルコードですので、
・宣言部
・参照設定を行わない分、引数
 等、一部修正は必要ですが参考にはなるでしょう。
 
FSO の TextStream を使用しているのであれば、書き込みは、Writeで良いです。
 
ファイルの拡張子を変えるのは、元のファイル名から、拡張子部分を除き、csvを与えたファイル名を
OpenTextFile メソッド
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/opentextfile-method
Create引数にTrueを渡し、csvファイル名をFileNameに渡しても良いでしょう。
 
でも私なら、元の拡張子にて保存したあと、ファイルの拡張子を変えるでしょうかね。
 
※1. objFile(0) はエラーになります。
※2. Do〜Loop は不要です。
※3. InStr関数 Start引数に0 を指定するとエラーになります。
※4. Replace関数 を使用するのであれば、InStr関数にて事前に vbTABの存在確認をする必要はないと思います。
 
 
以前からですが、VBScriptを構築したいのであれば、
Excel等のVBEを使用し、参照設定を行った上で、テストすれば良いです。
テストにて動作確認が出来たなら、その上で、VBS用にコードを変えます。
 
そうすれば ※1.※3. の確認は簡単にできるはずです。

投稿日時: 21/03/22 11:43:00
投稿者: gorby

Suzu さんの引用:

 
でも私なら、元の拡張子にて保存したあと、ファイルの拡張子を変えるでしょうかね。
 

 
回答ありがとうございます。
元の拡張子にて保存したあと、ファイルの拡張子を変えるサンプルコードを頂けないでしょうか?

回答
投稿日時: 21/03/22 14:07:11
投稿者: Suzu

引用:
元の拡張子にて保存したあと、ファイルの拡張子を変えるサンプルコードを頂けないでしょうか?

 
FSO を使用してならば
 
・FileSystemObject の MoveFileメソッド
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/movefile-method
 
・File の Moveメソッド や、Nameプロパティーの書き換え
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/move-method-filesystemobject-object
で可能です。

投稿日時: 21/03/27 19:06:20
投稿者: gorby

Suzu さんの引用:
引用:
元の拡張子にて保存したあと、ファイルの拡張子を変えるサンプルコードを頂けないでしょうか?

 
FSO を使用してならば
 
・FileSystemObject の MoveFileメソッド
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/movefile-method
 
・File の Moveメソッド や、Nameプロパティーの書き換え
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/move-method-filesystemobject-object
で可能です。

ありがとうございます。