- ベストアンサー
CSVに書き出すVBSとHTA
フォームに入力したテキストをCSVに書き出すプログラムを VBScriptで書いて、HTMLに組み込み、 HTA形式で作成したのですが、 実行時にウイルスチェックソフトのエラーが毎回出ます。 回避する方法は、ありますか? 初VB作成で、ソフト等もありませんので 的外れな質問だったらすみません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
FSOのファイル出力系を使うのであれば避けられないでしょう VBやC++などが使えるのであれば VB標準のファイル出力系やAPI経由のファイル出力を装備したActiveXを作ってVBSでこのオブジェクトを利用しましょう またはウィルスチェックソフトで個別に設定するような部分があればそちらで『許可』の設定をすることになりそうです ただし、改訂版などをリリースした際に『許可』設定を再びしないといけない場合もありそうです # HTAを対象に個別設定できるかは調べていません
その他の回答 (4)
- localica
- ベストアンサー率52% (202/385)
>VisualBasicのソフトは持っていないので、 他の方への回答でExcelでVBAを勉強しているとのことなのでユーザーフォームを使うことによりHTAと同等のことができませんか? Excelの入っているPCでしか動作しないという欠点があるので無理にはお勧めしませんが。
お礼
ご回答ありがとうございます。 仕事に追われてて返答が遅くなり申し訳ありません。 ユーザーフォームでもモチロンできるのですが、 ヴィジュアル的にはHTMLの方が良いかなって思ってまして。 個人的に・・・。 いろいろ勉強してみます。 ありがとうございます。
- localica
- ベストアンサー率52% (202/385)
ブラウザからC直下にファイルを書き出す時点で恐らく無理だと思います。理由は#2さんの書かれた通り。 例えばこれがMsgBoxとかならたぶん動作します。 VBは最近触っていないので関数は忘れましたが別のオブジェクトを利用すれば書きだせるのかもしれません。 #確かCSV出力関数があったはず 或いはHTAを止めて素直にVBSにするのも一つの選択肢だと思います。
お礼
ご回答ありがとうございます。 >VBは最近触っていないので関数は忘れましたが別のオブジェクトを利用すれば書きだせるのかもしれません。 >#確かCSV出力関数があったはず もう少し調べてみます。 >或いはHTAを止めて素直にVBSにするのも一つの選択肢だと思います。 VisualBasicのソフトは持っていないので、 テキストで書けるHTAを利用したいと思いました。
- chaigon
- ベストアンサー率50% (4/8)
どんなエラーが出ますか?エラーの情報を書いてもらえると回答しやすいです。それから、エラーが出ていると思われる箇所のプログラムも書いてもらえると、さらに回答しやすいです。 私は専門ではないのでよくわからないのですが、WEBブラウザっていうのは、セキュリティ上の理由でローカルPCにファイルを出力するようなプログラムに制限があったと思うのですが。その制限がないと、悪意あるサイトにアクセスしただけで、ローカルPCにウイルス(ファイル)の進入を許してしまうでしょう。 もしかしたら、WEBブラウザのセキュリティの設定を一番低く設定すれば可能かも?やったことないので試してみてはどうでしょうか?
補足
ご回答ありがとうございます。 プログラム自体のエラーが出ているわけではありません。 書き方が分かりにくくすみません。 ウイルス対策ソフトが、ウイルスと間違えて起動して、OKにすれば使えるのですが・・・ ソース自体にそういう問題があるのかと思いまして。。
- localica
- ベストアンサー率52% (202/385)
回避方法は大きく分けて2つあると思います。 1.ウイルスチェックソフトで対象のファイル或いはフォルダをチェック対象外にする 2.プログラムを修正する 1は簡単ですがウイルスチェックが機能しなくなるのでお勧めしません。 2が当たり前の方法だと思います。 通常VBで作成したプログラムがそのままウイルスソフトに引っ掛かることはありません。プログラムの中にウイルスとして判定されるコードなり動作なりが存在するからです。これ以上はソースがわからないと返答のしようがありませんが、「HTMLに組み込み」というところからブラウザからシステムを操作する部分が引っ掛かっているような気がします。
補足
早速のご回答ありがとうございます。 ソースですが、 Dim Fso Set Fso = CreateObject("Scripting.FileSystemObject") Sub cmdSave_onClick() Dim csvFile, FileName, strData FileName = "C:\000.csv" Set csvFile = Fso.OpenTextFile(FileName, 2, True) MsgBox Replace(editErea.Value, vbCrLf, ",") strData = Chr(34) & titleErea.Value & Chr(34) & Chr(44) & Chr(34) & editErea.Value & Chr(34) csvFile.Write strData csvFile.Close End Sub よろしくお願いします。
お礼
ご回答ありがとうございます。 >VBやC++などが使えるのであれば VB標準のファイル出力系やAPI経由のファイル出力を装備したActiveXを作ってVBSでこのオブジェクトを利用しましょう もともとHTMLは分かるのですが、 最近、エクセルでVBAをはじめたばかりで、VBのソフトも まだ購入していないので、HTAにしてみましたが、 今のわたしのレベルでは、ちょっと難しそうです。