VisualBasicでDLLファイルを呼び出して実行したいのですが,
その際に,テキストに一度引数を入れたいと思っています.
しかし,不要になれば,そのつどプログラムの中でテキストファイルを削除したいと思っています.

テキスト作成は
 Open App.Path + "\新規作成.txt" For Output Access Write As 1
mystring = "ByVal ImaFile As String"
Print #1, mystring
Close #1

でできたのですが,
テキストを削除する方法を教えてください.

HELPには
Sub Manip_Files()
Dim fso As New FileSystemObject, txtfile As TextStream, fil1 As File, fil2 As File
Set txtfile = fso.CreateTextFile("c:\testfile.txt", True)
MsgBox "ファイルを削除します。"
' 現在の位置でファイルのハンドルを取得します。
Set fil1 = fso.GetFile("c:\tmp\testfile.txt")
Set fil2 = fso.GetFile("c:\temp\testfile.txt")
' ファイルを削除します。
fil1.Delete
fil2.Delete
MsgBox "完了しました。"
End Sub
という方法が載っているのですが,
最初のFileSystemObjectでひっかかります.
参照設定が足らないと思われるのですが,
何を加えたらいいのでしょうか.
教えてください.

このQ&Aに関連する最新のQ&A

A 回答 (1件)

お疲れ様です。



Kill ステートメントを使って削除できると思います。

Kill "c:\tmp\testfile.txt"

で削除できると思います。
ワイルドカードも使えますよ。

間違っていたらごめんなさい。

この回答への補足

できました!
かなり感動です!!!!
数時間悩みまくっていたのに...
本当にありがとうございました!!!!!!!

補足日時:2002/01/23 18:50
    • good
    • 0
この回答へのお礼

ありがとうございます!
今からやってみます!

お礼日時:2002/01/23 18:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QVB6変数の宣言dim j,k,p,m,n as Integerは良くない?

お世話になります。

VB暦1年です。

汎用の変数宣言でタイトルのように
dim j,k,p,m,n as Integer
dim ssa,ssb as String

など、カンマ区切りで変数宣言を使っていたのですが
最近、知人にasの手前の変数は型どおり宣言されるが
その手前の変数はVariant型で宣言されてしまうと指摘されました。

指摘されるまで気にはしていませんでしたが
ウォッチで確認すると変数に代入されるまでは
型がVariant/Emptyとなってます。

以後、気をつければいいのですが
過去にコーディングしたプログラムにも多少、使用していて客先に納品してしまっているものもあります。
後々、問題になるのかな?

Aベストアンサー

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというようなバグの原因になりやすいので、型を明示できるような状況で敢えてVariant型を使うべきではないです。

しかし、すでに納品してしまったコードについては、問題はメモリを余計に使ってしまうことくらいではないでしょうか?
他の人が気づかなかったことから考えるに、多分狭いスコープで使っていますよね? 比較対象や代入するべき型を誤るというようなロジックの誤りがない限り、少なくとも動作上の問題は発生しないと思います。ただ、直せる機会があるのであれば、直した方がいいとは思いますが。

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというよう...続きを読む

Qレコードセットの値 SelectとINSERT,UPDATE,Deleteで異なる?

VB6でSQL Server2005をADOでアクセスしていますが、基本的なことですが、SELECT文の場合はrs.closeしてもエラーになりませんが、INSERT,UPDATE,DELETEの場合は、rs.closeとすると、
実行時エラー3704
オブジェクトが閉じている場合は、操作は許可されません。
というエラーメッセージが表示されます。

SQLは以下のように実行しています。
Call rs.Open(cobSQL.Text, cn, adLockOptimistic)

VB6でSQL SERVER2005(もしくは2000)でデータベースアプリを作成するのに参考になる良書などご存知でしたら教えてください。

また、VB6でADOは、ネイティブにSQL Server2005にアクセスできるのでしょうか?まだADOやデータベースの概念が良くわかっていないため、質問自体がおかしいかもしれませんが、VB6で高速にSQL SERVER 2005で処理させたいのが私の現時点での目標です。

Aベストアンサー

更新系(UPDATE、INSERT、DELETE等)のSQLでは、
レコードセットは使用してはいけません。

レコードセットを使用するのは、参照のみです。
更新系は、コネクションオブジェクトのExcuteメソッドを使用します。
つまり、レコードセットは、開く必要はなく、閉じる必要もありません。
(例)
Cn.Execute "insert into テーブル名 (XX1,XX2,XX3)values(ZZ2,ZZ2,ZZ3)

ちなみに、VB6とSQLサーバーの動作イメージとしては、
以下1、2を参考程度に。

1参照の場合(往復)
(1)VB6 → SQL文投げる  → SQLサーバー
(2)VB6 ← レコード取得  ← SQLサーバー

2更新系の場合(片道)
(1)VB6 → SQL文投げる → SQLサーバー(更新)

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_s12.htm

QVBAで、すべてのファイル(ppt,pdf,txt

VBAで、すべてのファイル(ppt,pdf,txtなど)を選択して開きたい

VBA初心者です。ダイアログから選択して様々な形式のファイルを
開きたいのですが、
検索して↓などをみていますが、イマイチわかりません。。。

http://oshiete.goo.ne.jp/qa/1545851.html
http://oshiete.goo.ne.jp/qa/7827757.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1414898789


【環境 WindowsXP Excel2000】

↓これだとPDFを選択はできますが、エクセルに文字化けしてでてきます。

Sub フォルダからファイル選択()
Dim OpenFileName As String
Dim AAA, ZZZ As String

AAA = Sheets("data").Range("A5")
ZZZ = "'ChDir "\■.local\pubs\●\△\" & AAA

With CreateObject("WScript.Shell")
.CurrentDirectory = ZZZ
End With

OpenFileName = Application.GetOpenFilename("すべてのファイル,*.*")

If OpenFileName <> "False" Then
Workbooks.Open OpenFileName
Else
MsgBox "キャンセルされました"
End If
End Sub


不足情報ありましたら補足致しますので、お教え下さい><;

VBAで、すべてのファイル(ppt,pdf,txtなど)を選択して開きたい

VBA初心者です。ダイアログから選択して様々な形式のファイルを
開きたいのですが、
検索して↓などをみていますが、イマイチわかりません。。。

http://oshiete.goo.ne.jp/qa/1545851.html
http://oshiete.goo.ne.jp/qa/7827757.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1414898789


【環境 WindowsXP Excel2000】

↓これだとPDFを選択はできますが、エクセルに文字化けしてでてきます。

Sub フォルダからファイル選...続きを読む

Aベストアンサー

Workbooks.Open OpenFileName

createobject("shell.application").shellexecute openfilename
にしてみてください。

QFileSystemObjectのオーバーフロー

FileSystemObjectで

1台のPCだけ、以下のプログラムで実行時エラー6オーバーフロー
が発生します。

他の開発環境2台、実行環境2台では発生せず。

WinXP VB6+SP6です。

~プログラム~
Set Fso = CreateObject("Scripting.FileSystemObject")
'ファイルの末尾から書き込みモード(第2引数=8)で開きます
Set FsoTS = Fso.OpenTextFile(strPathFile, 8)
lngファイル行数 = FsoTS.Line - 1
FsoTS.Close
Set FsoTS = Nothing
Set Fso = Nothing

質問内容
・FSOを無効にする設定はありますか?
・FSOを無効にできた場合、「オブジェクトが作成できません」
のエラーになると思うのですが、そのエラーにはなりません。

※実行環境が現在手元にないので、実証できない状態です。

以上

FileSystemObjectで

1台のPCだけ、以下のプログラムで実行時エラー6オーバーフロー
が発生します。

他の開発環境2台、実行環境2台では発生せず。

WinXP VB6+SP6です。

~プログラム~
Set Fso = CreateObject("Scripting.FileSystemObject")
'ファイルの末尾から書き込みモード(第2引数=8)で開きます
Set FsoTS = Fso.OpenTextFile(strPathFile, 8)
lngファイル行数 = FsoTS.Line - 1
FsoTS.Close
Set FsoTS = Nothing
Set Fso = Nothing

質問内容
・FSO...続きを読む

Aベストアンサー

何処でエラーになっているのか確認したほうが良いでしょう

lngファイル行数への代入でエラーになっているのなら Longの境界を越えているのでしょうから 2Gの壁を越えていればどの環境でも発生します

lngファイル行数が 間違ってIntegerで宣言されているなら 32767行を超えるファイルに対しては同じことが言えるでしょう

当方で実験すると エラー429 ActiveXオブジェクトは作成できません のエラーになりましたが ・・・
fsoへの代入でこけているかと思います

エラー91だと On Error Resume Next などで FSOの代入エラーがパスされていて OpenTextFileメソッドを実行しようとしたのかも
このときは On Errorのトラップが無効になっているとか

QFileSystemObjectでフォルダ名取得

http://officetanaka.net/excel/vba/filesystemobject/filesystemobject.htm


このページにファイル名から、拡張子やドライブ名などを出力する方法が書かれていますが
ファイルが入っているフォルダ名を取得するコマンドはございますでしょうか?

例えば、

C:\xxxx\yyyy.txt
の場合、
C:\xxxx\

を取得したいのですが、コマンドはありますか?

Aベストアンサー

参考に
With CreateObject("Scripting.FileSystemObject")
  MsgBox .GetParentFolderName("C:\xxxx\yyyy.txt")
End With


このカテゴリの人気Q&Aランキング

おすすめ情報