VB6をWin2000で使用してます。
新規または既存のテキストファイルを開くのに現在、下記のように
記述しています。
----------------------------------------------------------------
Dim RETURNVALUE
RETURNVALUE = Shell("C:\WINNT\SYSTEM32\NOTEPAD.EXE " & "テキストファイルのフルパス" , 1)
-----------------------------------------------------------------
ここで、"テキストファイルのフルパス"で指定したファイルが無い場合、
「ファイル"テキストファイルのフルパス"が見つかりません。
新しく作成しますか?」
とメッセージが出るのですが、これを回避して強制作成することは出来ますか?
また、上記記述でなくても同様のことが出来れば構いません。
パスを渡す前に自分でDir関数でチェックすればいいのでは?
存在するかしないかのチェックは確かにDIR関数で出来るのですが、
存在しない場合に、メッセージを出さずに新規作成する方法がわからないのです。
いやだから、メッセージが出る前に、無ければ作っておくのです。
ファイルが無い場合は必ずファイルを作るのであれば、
Shellで呼ぶ前に、Appendモードでファイルを一回開き、
何もしないでCloseすればいいのでは。
ファイルの存在チェック:
http://jeanne.wankuma.com/tips/file/01-exists.html
空ファイルを作る:
http://jeanne.wankuma.com/tips/file/02-create.html
通りすがりさん、ねろさん、じゃんぬねっとさん ありがとうございます。
解決しました。
ねろさんの
「Shellで呼ぶ前に、Appendモードでファイルを一回開き、
何もしないでCloseすればいいのでは。」
は自分の勉強不足で分からなかったので、じゃんぬねっとさんのリンクを参考に
させて頂きました。
>自分の勉強不足で分からなかったので
Dim FileName As String, FileNo As Integer
FileName = App.Path & "\test.txt"
FileNo = FreeFile
Open FileName For Append As #FileNo: Close #FileNo
Shell "C:\WINNT\SYSTEM32\NOTEPAD.EXE " & FileName, 1
参考までに。
最後の行は明らかにまずい
まずいといえばまずい、まずくないといえばまずくない。
サンプルはあくまでサンプルなので、
臨機応変に対応するくらいの順応力がなければ、この業界ではやっていけないでしょう。
環境変数を使うなり、別の方法を使うなり色々あります。
ツイート | ![]() |