0

私のコードは、ユーザーにファイル名の入力を求めます。ディレクトリ「C:\Users\aUser\Desktop\myFolder」に 5 つのテキスト ファイルがあるとします。これらのテキスト ファイルの名前は、A、B、C、D、および E です。

テキストファイルが存在する場合は、作成済みのスクリプトで内容を上書きしたいと考えています。テキスト ファイルが存在しない場合は、入力されたファイル名で作成し、[既に記述したスクリプトを使用して] 入力したいと考えています。

ご協力いただきありがとうございます。

4

2 に答える 2

1

あなたの説明によると、最も簡単なワークフローは次のようになります。

1)ファイルが存在する場合は削除します

Sub test()

Dim FSO As FileSystemObject

Dim sPath As String

sPath = "U:\Test.txt"

Set FSO = New FileSystemObject
If FSO.FileExists(sPath) Then
    FSO.DeleteFile (sPath)
End If

End Sub

スクリプト (txt ファイルも想定) を次のパスにコピーします: FileCopy "U:\Script", sPath

文字列変数にスクリプトがある場合:

Set txtFile = FSO.CreateTextFile(sPath, True)
txtFile.WriteLine(sText)
FSO.Close
End Sub

スクリプトが配列に含まれている場合、配列をループして複数の書き込み行を生成できます。
Microsoft Scripting Runtime ライブラリを参照することを忘れないでください。

于 2013-01-17T15:52:01.727 に答える
0

このようなもの

  • OSに関係なく、ログオンしているユーザーのフォルダーを見つけます
  • ユーザー入力ファイルがマスターリスト ( によって保持されるStrFiles)に含まれていることをチェックします
  • 次に、存在しない場合は新しいファイルを作成するか、または
  • 上書きスクリプトを追加するためのロジック ブランチを提供します

    サブ

コード

GetFiles()
Dim wsShell As Object
Dim objFSO As Object
Dim objFil As Object
Dim strFolder As String
Dim StrFile As String
Dim StrFiles()
StrFiles = Array("A.txt", "B.txt", "C.txt")
Set wsShell = CreateObject("wscript.shell")
strFolder = wsShell.specialFolders("Desktop") & "\myFolder"
StrFile = Application.InputBox("Please enter A.txt, B.txt", "File Selection", , , , , 2)
If IsError(Application.Match(StrFile, StrFiles, 0)) Then
MsgBox StrFile & " is invalid", vbCritical
Exit Sub
End If
If Len(Dir(strFolder & "\" & StrFile)) = 0 Then
'make file
Set objFSO = CreateObject("scripting.filesystemobject")
Set objFil = objFSO.createtextfile(strFolder & "\" & StrFile, 2)
objFil.Close
Else
'write over file
'add your code here
End If
End Sub
于 2013-01-16T22:13:47.950 に答える