- ベストアンサー
PUTの連続使用
http://www.okweb.ne.jp/kotaeru.php3?q=194302 この質問の回答を頂いてプログラムを変更したのですが、また詰まってしまいました・・・(T.T) Open strTmp For Binary As #1 Put #1, , strCom Put #1, , "EXIT" Close #1 として、ファイルstrTmpの中身をみると、(strCom=dir/wとする) dir/wEXIT となっています。 希望する結果は、 dir/w EXIT なのですが、方法はあるでしょうか? VBのHELPを参照した感じでは、配列変数を使えばいいみたいですが、strComの値は可変です。 ついでの質問ですが、VBのプログラムをするにあたって、VBのヘルプを利用するだけで技術アップは望めるでしょうか? 市販の書籍は必要とする部分が少なく金額も高いため考えてしまいます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Put #1, , strCom Put #1, , vbCrLf '改行コード Put #1, , "EXIT" っていうか、1行づつならPut以外の方法をお勧めします。 Open strTmp For For output As #1 Print #1, strCom Print #1, "EXIT" close #1
その他の回答 (1)
- msystem
- ベストアンサー率42% (79/186)
>vbCrLfというのがあったんですね ちなみに、vbNewLineというのもあります。 Microsoftではこちらのほうを薦めているようです。 このあたりは、VBのヘルプにあります。(ただ、インストール時のMSDNにあるかどうかは、未確認。すいません)
お礼
ありがとうございます。 VBのヘルプを含めまだまだ勉強が必要と感じました。 これからも頑張っていきたいと思います。
補足
その後、shell(strTmp,~)とすることで、DOS窓を開いて、dir/wを実行後、EXITでDOS窓を閉じるはずなのですが、なぜかDOS窓が閉じてくれないんです。 手動でDOS窓開いて、手動でabc.batを実行だとbat内の最後のEXITでDOS窓が閉じるんだけど・・・ このあたり分かればよろしくお願いします。 この件ですが、できました! ヘルプでよく調べてみたら書いてありました。 お手数おかけしました。 参考に・・・ shell("command.com/c "+strTmp,~) で、終了後閉じるようになりました。 回答、補足の記入がめちゃくちゃになってしまいましたが、教えてくれた方ありがとうございました。
お礼
vbCrLfというのがあったんですね。(&H13を追加してみたりしたのですが、うまくいかなくて) Printのほうは、初めて知りました。 For outputでファイルを開いて、writeでやったら、文字列の前後に"~"が入ってしまって、Binaryで何とかしようと思ってましたので、助かりました。 今日、さっそくやってみたいと思います。 私の場合、昔N88 BASICをやってたので、当時のコマンドで何とかしようとしてしまうのが原因かもしれません。 うちのVBは、ヘルプでOPENを検索しても灰色の文字で内容が表示できないんのだけど、MSDNの使い方が悪いのかな?
補足
アドバイスを参考にプログラム変更で目的のファイル出力ができました。 でも、なぜか他の部分がうまくいかないんです。 strTmpは、abc.bat(DOSのバッチファイル) strComは、 dir/w EXIT その後、shell(strTmp,~)とすることで、DOS窓を開いて、dir/wを実行後、EXITでDOS窓を閉じるはずなのですが、なぜかDOS窓が閉じてくれないんです。 手動でDOS窓開いて、手動でabc.batを実行だとbat内の最後のEXITでDOS窓が閉じるんだけど・・・ このあたり分かればよろしくお願いします。