あるフォルダ内にあるエクセルファイルを開き(ファイル数は変動)、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)実施したい内容に、この処理方法(エクセルに出力後テキストに書き出し)は、あっているでしょうか?適切な処理方法があれば教えてください。
今週中に作成する必要があり、大変困っています。
すみませんが、よろしくお願いいたします。
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.の方法で出力できます。
早速の回答ありがとうございます。
わかりにくい文章ですみませんでした。
無事にエクセルファイルに一度出力することなく、直接テキストファイルに出力することができました。
ありがとうございました。
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 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでPowerPointからExcelにデ...
-
特定フォルダ内のテキストファ...
-
ある文字列を含む行の抽出
-
テキストファイルの行頭に文字...
-
VBAで新しい日付順にファイルを...
-
他のExcelファイルのVBAコード...
-
BCPユーティリティの使用法_...
-
fortranでのcsvファイルを出力...
-
時間短縮のために、テキストフ...
-
access vbaでCSVファイルを文...
-
RandomとBinaryモードの違い
-
複数行の文字列を変数として使...
-
ファイル検索&出力
-
A列をテキストファイル名に、B...
-
バッチでiniファイルの編集
-
マクロでの処理結果をログファ...
-
VB6側からテキストファイルをク...
-
テキストファイルを直接置換す...
-
コマンドプロンプトの「%1」と...
-
バッチでテキストファイルから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでPowerPointからExcelにデ...
-
特定フォルダ内のテキストファ...
-
VB6側からテキストファイルをク...
-
複数行の文字列を変数として使...
-
Excel.VBA テキストファイルを...
-
BCPユーティリティの使用法_...
-
fortranでのcsvファイルを出力...
-
テキストファイルの行頭に文字...
-
ある文字列を含む行の抽出
-
テキストファイルを直接置換す...
-
VBAで新しい日付順にファイルを...
-
unicode文字列(日本語)のファイ...
-
iniファイルとの比較(iniファイ...
-
access vbaでCSVファイルを文...
-
バッチでiniファイルの編集
-
A列をテキストファイル名に、B...
-
VBAで任意のフォルダ内のファイ...
-
C#でのファイル編集と上書き保...
-
ランレングス符号化を用いた符...
-
cobolのコメント削除
おすすめ情報