• 締切済み

エクセルVBAで

いつもお世話になっています。 エクセルVBAでセルのデータを読み込んでテキストファイルを出力するプログラムを書いています。 その際に、セル内のデータで「00」や「01」などのデータを読み込んで、そのままテキスト出力させたい場合関数の指定をStringにした場合「0」や「1」と出てしまいます。 「00」や「01」でテキスト出力させる方法を教えてください。 よろしくお願いいたします。

みんなの回答

回答No.3

こんばんは。 これは、CurrentRegionで、囲まれる四角の中のデータを出力するものです。 出力場所は、Excelのデフォルト・フォルダか、マクロを動かしているファイルのフォルダーです。 出力ファイル名は、「Output.txt」 例えば、こんな風にすることです。不具合があれば、また考えます。 '// Sub Test1()  Dim rng As Range  Dim fNo As Integer  Dim r As Variant  Dim c As Variant  Set rng = Range("A1").CurrentRegion  'rng.Select '範囲の確認用  fNo = FreeFile()  Open "Output.txt" For Output As #fNo '<--FreeFile()から。  For Each r In rng.Rows   For Each c In r.Cells    buf = buf & "," & c.Text '<-このように、Textプロパティを使います。セパレータは「,」カンマ区切り   Next c   Print #fNo, Mid(buf, 2)   buf = ""  Next r  Close #fNo End Sub '//

回答No.2

こんにちは。 >セル内のデータで「00」や「01」などのデータを読み込んで、そのままテキスト出力させたい 要するに、Format関数で整えて出力するよりも、Text プロパティの値なら目で見たままですから、それを出力させればいいはずです。 エクスポートは、ほとんど、出回っているコードのままでいいです。 Open "Output.txt" For Output As #fNo '<--FreeFile()から。 Print #fNo, [ここの値が問題] Close #fNo

homma
質問者

お礼

WindFaller様 回答ありがとうございました。 keronjin様の回答に補足で書かせていただきましたとおりマクロの追加で変更してテキスト出力しました。 今回WindFaller様からいただきました回答の[ここの値が問題]という部分を今少し詳しく教えてもらえないでしょうか。 時間がたってしまい申し訳ありませんがなにとぞよろしくお願いいたします。

  • keronjin
  • ベストアンサー率50% (83/166)
回答No.1

もう少し詳しく記載して質問されると回答も付きやすいかと思いますよ。 あなたがどういうプログラムを書いているのかなんて誰にもわかりませんからね。 支障が無い程度に現状のソースの一部を記載するとアドバイスしやすいかと思います。 単純に文字列として保存すればいいように思いますが。。。 そもそもそのセル内に表示されているデータ「00」や「01」は文字列ですか?。 もしそれが”数値”で、セルの書式設定によって頭に0が付いているのなら テキストに書き出した際に「0」や「1」になってしまうのは当たり前の話です。 値の形式をよく確認してみることをおすすめします。

homma
質問者

補足

keronjin様 回答ありがとうございました。 返信を返していたつもりでしたが送っていなかったようです。 確かにセルの書式設定で「0」や「1」などを「00」や「01」となるようにひょうじしていました。 当然セルの値は「0」や「1」です。 そこで以下のマクロを追加して解決しました。 if a=0 then a=00 if a=1 then a=01 ・ ・ ・ という感じです。 セルのビジュアルがそのままテキストデータと思いこみ変な質問をしてしまいました。 keronjin様の回答で自分の間違いを認識できました。 ありがとうございました。

関連するQ&A