• ベストアンサー

マクロでの処理結果をログファイルとして作成したい

あるフォルダ内にあるエクセルファイルを開き(ファイル数は変動)、A1セルの値を取得し、あるリストと整合チェックを実施します。 存在すればOK、存在しなかったらNGとし、その結果をtxtファイルに出力する処理を考えています。 -------テキストファイルイメージ------- 整合チェック 処理結果 処理日時:2008/10/18 9:00 OK 00011,99999,52222 NG 00012,22222,33333 ------------------------------------- 処理方法として考えたのは、上記テキストファイルイメージのエクセルファイルを作成後、テキストファイルに出力する方法です。 (そもそもこの方法で良いのかも不安ですが) 1.仮のエクセルファイルを作成 2.A1セルにヘッダ情報を出力 3.整合チェックを実施する度に、OKまたはNGの行にコードを格納 4.すべての整合チェック終了後、テキストファイルにエクセル情報を出力 5.エクセルファイルは保存しないでCLOSE 質問内容は以下の2点です。 (1)エクセルファイルに"0で始まる数字を出力すると"0"が表示されなくなってしまいます。これを回避する方法を教えてください。 (2)テキストファイルにコンマ区切りで出力する方法を教えてください。 (3)実施したい内容に、この処理方法(エクセルに出力後テキストに書き出し)は、あっているでしょうか?適切な処理方法があれば教えてください。 今週中に作成する必要があり、大変困っています。 すみませんが、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • garaogu
  • ベストアンサー率40% (67/166)
回答No.1

こんにちは A1.先頭の"0"を表示させるには、セルの書式を文字列に変更してください。 A2.以下の様な形で、コンマ区切りで出力できます。  Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")  Set objOut = objFSO.OpenTextFile("test1.txt", 2)  strLine = "整合チェック 処理結果 処理日時:2008/10/18 9:00"  objOut.WriteLine strLine  strLine = "OK 00011,99999,52222"  objOut.WriteLine strLine  strLine = "NG 00012,22222,33333"  objOut.WriteLine strLine  objOut.Close A3.CSVの形でテキストファイルへ出力するだけなら、特に仮のExcelファイルなどを作成しなくても、上記A2.の方法で出力できます。

asaji7
質問者

お礼

早速の回答ありがとうございます。 わかりにくい文章ですみませんでした。 無事にエクセルファイルに一度出力することなく、直接テキストファイルに出力することができました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

エクセルに凝り固まっているように思う。 広く経験のこと。 わざわざエクセルのシートに書き出してCSV、TXTファイルしなくても、普通は直接できるし、するものと思う。 CSVファイルの書き出しは、エクセルより古くからある原初的なものです。 それに便利なWRITE#ステートメントが昔からある。 今も使える。 下記をやってみて納得してください。 標準モジュールに(XXXXはユーザーIDの変える事) 実際はデータ編集とWriteはループの中で繰り返す。 Sub test01() Open "C:\Documents and Settings\XXXX\My Documents\aaa8.csv" For Output As #1 a = 123 b = "abcd" c = "01234" Write #1, a, b, c a = 3456 b = "sdfgd" c = "00335" Write #1, a, b, c Close #1 End Sub 結果 メモ帳で表示 123,"abcd","01234" 3456,"sdfgd","00335" ただしこれは1例で、テキストファイルに書き出しのコード(方法)は、種類が増えているが。 Fso利用とかPrint #や。NET系(本件と関係ないが)。 参考 http://www.geocities.co.jp/Milkyway/4171/vb6/010.htm

asaji7
質問者

お礼

ありがとうございました。 エクセルに出力することなく、PRINTを使用してテキストファイルに順に出力することができました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルのセルをテキストファイル出力する方法教えてくれませんか。

    初心者ですが、 どなたか、エクセルのセル1つを、 テキストファイル出力できる方法をご存知ですか? 詳細には、 エクセルファイルの列Aの内容がテキストファイル名で、 列Bの内容が本文であるテキストファイル出力を 約3000個、順次したいと考えています。 例えば、エクセルファイルに以下のようなデータを保持しているとします。 列A  列B 001  あいうえお 002  かきくけこ 003  さしすせそ この場合、001.txtは本文が「あいうえお」、 002.txtは本文が「かきくけこ」、 003.txtは本文が「さしすせそ」というように、 エクセル1行についてテキストファイルを1つ作成したいと考えています。 このような処理を短時間で実施するのに適した方法をご存知の方がいらっしゃいましたらご教示いただければと思います。 どうぞよろしくお願いいたします。

  • VBAの結果をテキストファイルへ。

    VBAについてのご質問があります。VBA(エクセル)で処理した結果をテキストファイルとして出力したいのですが、どのようにやるのでしょうか。申し訳ございませんが、ご教授ねがいます。

  • bat処理の実行結果ログ出力方法について

    Windows2003Serverで、bat処理でネットワーク共有したHDDにバックアップデータを移動する処理を組込しているのですが、実行される場合、されない場合があるため、実行結果をログ出力したいと思っています。 MV D:TEST.TXT Z:\TEST.TXT >>D:\LOG.TXT として出力しますと、エラーであっても、正常であっても何も出力されませんでした。 コマンドプロンプト上で返される結果(ファイルが存在しない場合、「指定されたファイルが見つかりません」の表示をする等)をログ出力する方法はないでしょうか? ご教授下さい。

  • EXCELの結果をTEXTファイル化する

    音声ファイルを指定時間に細かく分割するのに一括処理する為に 事前にトラックを指定したテキストファイルを作成することにしました。 最終的には、テキストファイルを変換ソフトに読み込ませて分割する予定です。 そこで、指定時間を秒に変換>数値に変換する表をEXCELで作成することにしました。 例えば、03:24(3分24秒)  ----->  204.000000     01:02:23(1時間2分23秒) -----> 3743.000000 03:24を入力すると 指定セルに 数値の204.000000が表示される 01:02:23入力すると 指定セルに 数値の3743.000000が表示される (小数点以下の000000は、必ず必要です。) 時間入力を簡単に入力するために  以前教えていただいた数式を利用しています 何とか、自力で関数を利用して小数点以下まで書き出すことはできましたが、 不具合や訂正があれば紹介下さい。 -------------------------------------------------- 最終的にEXCELの表を添付のような書式でTEXTファイルに変換して出力したいのですが 方法を教えて下さい。 参考画像添付

  • テキストファイルが登録されたら、マクロを実行する方法

    あるフォルダにテキストファイルが登録されたら、それをexcelの特定セルへ読み込み、読み込んだテキストファイルを削除というマクロを作成しました。 これを、連続的に実行させる方法はあるでしょうか? テキストファイルが登録される度に表示を繰り返すという内容です。 コマンドボタンで起動するマクロのトリガを、コマンドボタンを使用しないで、ファイルが登録された時点で実施したいというおもいです。 テキストファイルの名前は常に一定です(FILE.txt)。

  • マクロを作成したファイルを立ち上げたときの処理

    こんにちは、いつも勉強させてもらっています。 さて、今回はマクロを作成したファイルを開くと、【ファイルが見つかりません】という処理になってしまうので質問させてもらいました。 プログラムの内容は次の通りです。 --------------- Private Sub Workbook_Open() Worksheets("入力フォーム").Activate 修理報告書ナビ.Show vbModeless End Sub --------------- これしか書いていないのに、ファイルを見つけにいって上記のようにコメントされてしまいます。 閉じるにすれば特に問題はないのですが、閉じるにする処理も面倒なもので・・・。 理由もしくはそれをなくす方法がわかりません。 方法を教えてください。 よろしくお願いいたします。

  • ASPからPDFファイルを自動作成

    ASPからある処理の結果を帳票として、PDFファイルに自動に作成したいのですがどのように実現したらいいのかわかりません。処理の流れは以下の通りです。 1.サーバサイドで実行したSQL文の結果を帳票の明細部として出力 2.XXX.PDFという名前のファイルをサーバに作成し、罫線、ヘッダ部およびSQL結果の明細部を描画していく エクセルに帳票レイアウトを作成し、セルにSQL結果を埋めていって、出力プリンタ先をAcrobat Writerにすればできると思うのですが・・・それ以外の市販PDF作成ツール等を利用しないで作成する方法はございますでしょうか? VBのPRINTERオブジェクトみたいなものがASPにはないとおもうのでどう実現したらいいのかわからないため 質問内容がおかしければ言ってください。 またできましたらサンプルコードを教えてください。 開発環境は、NT4.0、SQLサーバ7.0、Acrobat5.0をイントラネット環境で使用します。

  • パイプ処理の結果は利用可能?

    今現在Perlの勉強をしているところなのですが、詰まってしまったのでアドバイスをいただきたいです。あるPerlプログラムで作成したファイルを、そのプログラム内でパイプ処理し、その結果を再びそのプログラム内で利用したいと考えています。例えば以下のようなプログラムPは作成可能でしょうか、可能であればその方法を教えていただきたいです。サンプルコードなどがあれば幸いです。 プログラムPの概要 あるファイルを作成する→そのファイルを別のプログラムで実行(結果は○か×を出力)→結果が○であれば再びファイルを作成する、結果が×であればプログラム終了

  • Kシェルでファイル削除処理

    kシェルで、ファイルを1行ずつ読み込み、記述されたファイルを削除する処理を作成したいのですが、ワイルドカード指定にも対応したいです。最初はrm -r で実施しようとしたのですが、これだとディレクトリも削除されてしまうので使えませんでした。rm -fでやった場合も削除に失敗した場合のエラーハンドリングが難しく困っています・・・。 何か良い方法はないでしょうか? lsコマンドの出力結果を再度読み込み、ファイルだったら消すという方法ぐらいしか思い浮かばず・・・。

  • MSエクセルでのデータ作成

    こんにちは。 エクセルで作成したデータの件で質問です。 エクセルでデータを作成しています。 作成したデータを1つのセル内のデータ単位で1つのテキストファイルの中にコピーしテキストファイルを作成したいのですが、 何か簡単な方法(フリーソフトなども含む)をご存知の方はお教えいただけませんでしょうか? 現在エクセルとテキストファイルを開いて、1セルずつにコピー&ペーストで作成しています。 よろしくお願いします。

専門家に質問してみよう