- 締切済み
Excel VBA 出力について
txtファイルの出力をしたいのですが 調べながらやっていたのですがよくわかりませんでした。 あまり時間が取れない為 コードの記述方法を教えてください。 vbaの処理を行ってできたstrCompSheetNmのSheetがあります。 このSheetのデータを出力したいのです。 またこのSheetの行数は非固定になります。 出力元をどこかで指定してあげないといけないのかと思うのですが 記述方法がわからず いろいろなサイトを参考にしながらやってみても 内容が空のファイルができあがったりしてました。 出来たら 出力時 同名のファイルがあった場合 上書き又はファイル名を変更できるようにしたいのです。 いろいろ書きなおした上で下記の状態でとまっております。 ご回答のほう宜しくお願い致します。 不慣れでもうしわけないです。 現状 Dim SaveFileName As Variant Dim wScriptHost As Object, strInitDir As String Set wScriptHost = CreateObject("WScript.Shell") ChDir wScriptHost.SpecialFolders("Desktop") 'Dim YeDate As String 'YeDate = Format(Date, "yyyymmdd") SaveFileName = Application.GetSaveAsFilename(Format_ (Date, "yyyymmdd"), "テキストファイル(*.txt),*.txt,_ CSVファイル(*.csv),*.csv") If SaveFileName <> False Then Dim FlNum As Integer Dim GYO As Long Dim GYOMAX As Long FlNum = FreeFile Open ThisWorkbook.Path & SaveFileName For Output As FlNum GYO = 1 Do Until GYO > GYOMAX Print #FlNum, GYO = GYO + 1 Loop Close #intFF Else MsgBox "キャンセルがクリックされました。", vbInformation End If
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- rivoisu
- ベストアンサー率36% (97/264)
当然print #Flnum、 の後には出力するセルの記述が必要ですよ。 (突っ込み忘れ) あちこち調べるのはいいけど コードの意味を理解しないと、よさそうなのを寄せ集めただけではプログラムは動きません。
- rivoisu
- ベストアンサー率36% (97/264)
>いろいろ書きなおした上で下記の状態でとまっております。 現在どうなっているのか「止まっている」ではわからない出力がおかしい、出力されない、エラーになる(どこでどんな) 突っ込みどころ満載のコードですが 取り合えず目に付いたところ Open ThisWorkbook.Path & SaveFileName For Output As FlNum #FlNum にする Do Until GYO > GYOMAX このコードだとGYOMAXに値が入っていないので何もしない 多分この場合 GYOMAX=Cells(Rows.Count, 1).End(xlUp).Row 繰り返し回数が決まっているのならDo Until より普通はfor Next For GYO = 1 to GYOMAX Print #FlNum, Loop Dim wScriptHost As Object, strInitDir As String Set wScriptHost = CreateObject("WScript.Shell") ChDir wScriptHost.SpecialFolders("Desktop") 使ってないので意味が無い If SaveFileName <> False Then Dim FlNum As Integer Dim GYO As Long Dim GYOMAX As Long 変数宣言はif文の中でやるのはちょっと...
- cistronezk
- ベストアンサー率38% (120/309)
>あまり時間が取れない為 >コードの記述方法を教えてください。 「ファイル」-[名前を付けて保存」でファイルの種類を「テキスト(タブ区切り)」か「CSV」にして保存。 これをマクロ記録して修正するのが一番早そう。
補足
" 込の文にさらに単語ごとに " が入ってしまうなど あったので 諦めて 時間かけてやることにします。 こんなこと 投稿で聞くべき内容ではなかったですねすいません。
お礼
なんとか解決できました。 ありがとうございました。