• 締切済み

excelからのテキスト出力方法

はじめまして。 VBAでセルに入力された文字と固定した文字をテキストとして出力し 自動的に保存させたいのですがどうすれば良いでしょうか? イメージとしては・・・ セル・・・入力した文字 A1・・・○○○ A2・・・■■■  ↓ マクロ実行  ↓ テキスト出力・保存(D:\test.txt) ---テキスト内容--- set ○○○ set ■■■

みんなの回答

noname#22222
noname#22222
回答No.5

***************  テキストファイルを出力するコード *************** Private Sub cmdOutputText_Click()   Dim I    As Integer   Dim strText As String      For I = 1 To 10     If Len(Cells(I, 1) & "") > 0 Then       strText = strText & ”set" & Cells(I, 1) & Chr$(13) & Chr $(10)     End If   Next   FileWrite "D:\test.txt", strText End Sub ******************  FileWrite関数(標準モジュールに追加) ****************** [ツール]-[参照設定]-Microsoft Scripting Runtime にレ点を付けて下さい。 Public Function FileWrite(ByVal FileName As String, _                 ByVal Text As String) As Boolean On Error GoTo Err_FileWrite   Dim fso As FileSystemObject   Dim txs As TextStream      Set fso = New FileSystemObject   Set txs = fso.CreateTextFile(FileName, True)   txs.Write Text   FileWrite = True Exit_FileWrite:   Exit Function Err_FileWrite:   MsgBox Err.Description & "(FileWrite)", vbExclamation, " 関数エラー メッセージ"   Resume Exit_FileWrite End Function

noname#35109
noname#35109
回答No.4

#3です。 すみません。1行書き間違えていました。 '中間行の書き込み For I = firstRow + 1 To II - 1 ' ←この行はこれが正解 TXT = TXT & kotei & ActiveSheet.Range("A" & I).Value & Chr(10) Next I なお,#3で「エラー処理は入れず…」と書きましたが, どういう場合がエラーかというと, 「A列に何もデータがなかった場合」や, 「A列に1つしかデータが入っていなかった場合」や, 「A列に空白セルが入っていた場合」などです。 必要であれば,IF で分岐する必要が出てきますが,それをいちいち書いていると本題のスクリプトがどうなっているのかわからなくなると思い,書いていません。

noname#35109
noname#35109
回答No.3

こんな感じでいかがでしょうか? ↓ ----------------------------------------- ' テキストファイル保存サンプル Sub テキスト保存() Dim N As Long N = FreeFile Dim I As Integer, II As Integer, firstRow As Integer Dim TXT As String, kotei As String '最初の行の設定 firstRow = 1 '固定した文字の設定 kotei = "set " '最終行の取得 II = ActiveSheet.Range("A65536").End(xlUp).Row '最初の行の書き込み TXT = kotei & ActiveSheet.Range("A" & firstRow).Value & Chr(10) '中間行の書き込み For I = firstRow To II - 1 TXT = TXT & kotei & ActiveSheet.Range("A" & I).Value & Chr(10) Next I '最後の行の書き込み TXT = TXT & kotei & ActiveSheet.Range("A" & II).Value 'テキストの保存(書きかえ) Open "D:\test.txt" For Output As #N Print #N, TXT Close #N End Sub ---------------------------------------------- Excel VBA の質問ではほぼ初の回答です。 諸先輩の方々からはお叱りを受ける書き方の部分もあるかもしれませんが, エラー処理は入れずシンプルに書いてみました。 動作確認はしています。

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

>入力された文字と固定した文字 どういう意味ですか。全てエクセルは値はセルの値として持っており 区別する必要はないと思うが、わざわざ区別して書くのはどういう意味ですか。 >テキストとして出力し 各列と行は分けて出力するのでしょうが、セパレータ(区切り)はどうするのですか。行は改行復帰を入れるのでしょうが。 >自動的に保存させたい どういうキッカケでVBAのプログラムを実行させれば良いのですか >set ○○○ Setはどういう意味ですか。何か他の言語に持っていこうとしているのですか。

noname#46899
noname#46899
回答No.1

EXELのファイルをテキスト形式やCSV形式で保存するのではだめなんですか? 質問の内容では、一列目に「set」の文字を入れてテキスト形式で保存すればいいように思えますが。

関連するQ&A

専門家に質問してみよう