Excelマクロ制作を始めて半月たらずの初心者です。
Excelシートの内容を.txtファイルに出力するマクロを作成しております。
目標として、指定した範囲(セルD11~F20)の範囲のみの行列データを出力したいのですが、
現状では、セルD11以下の行列データを出力する方法しか分かりません。
下記の内容が現在制作中のマクロですが、どの様に変更・修正すればよろしいのでしょうか?
皆様方のご教授をお願いいたします。
Sub WriteFile_TXT2()
'
' WriteFile_TXT2 Macro
' 目標:セル範囲指定("D11:F20")してTXTファイル出力
'
Dim ws As Worksheet
'5つめのシートの内容を使用する。
Set ws = ThisWorkbook.Worksheets(5)
Dim datFile As String
datFile = ActiveWorkbook.Path & "\data.txt"
Open datFile For Output As #1
'現行:セルD11からシートの終わりまで1行ずつ繰り返す
Dim i As Long, j As Long
i = 11
Do While ws.Cells(i, 4).Value <> ""
j = 4
Do While ws.Cells(i, j + 1).Value <> ""
Print #1, ws.Cells(i, j).Value & " ";
j = j + 1
Loop
Print #1, ws.Cells(i, j).Value
i = i + 1
Loop
Close #1
MsgBox "data.txtに書き出しました"
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは。
元のコードをそのまま活かして手直ししてみました。なんだか、モヤッとしたコードになってしまいました。そして、#1さんのご指摘は、こちらでは今の段階では触らないままにしておきます。
'//
Sub WriteFile_TXT3()
' WriteFile_TXT2 Macro '変更
' 目標:セル範囲指定("D11:F20")してTXTファイル出力
'-------------------
Dim ws As Worksheet
'5つめのシートの内容を使用する。
Set ws = ThisWorkbook.Worksheets(5)
Dim datFile As String
Dim i As Long, j As Long, k As Long, kt As Long
Dim buf As String '1行のバッファ
Const rw As Long = 11 '最初の行
Const col As Long = 4 '最初の列
datFile = ActiveWorkbook.Path & "\data.txt" '出力ファイル名
Open datFile For Output As #1
For i = rw To ws.Cells(Rows.Count, col).End(xlUp).Row
For j = col To ws.Cells(i, Columns.Count).End(xlToLeft).Column
buf = buf & " " & ws.Cells(i, j).Value
Next j
k = Len(buf)
If k > 1 Then '行でまとめて判定
Print #1, Trim(buf)
End If
kt = kt + k
buf = ""
Next i
Close #1
If kt > 1 Then
MsgBox "data.txtに書き出しました"
Else
MsgBox "出力に失敗しました", vbCritical
End If
End Sub
うーん、検証を行った所、この方法では指定した範囲内の取り込みは行ってくれないようです。(指定範囲外のセルデータまで取り込んでしまうようです)しかし、この方法は空白のセルがあってもデータの取り込みを行ってくれるようです。(私の方法では、空白セルがあった所で取り込み終了)回答者様の方法は、空白セルを含んだデータの取り込み処理が必要な場合に参考とさせていただきます。
No.1
- 回答日時:
もしかしたらですが、アクティブシートの毎回選択範囲を変えてそのセルの値を「data.txt」に書き出す。
と言う事で良いのでしょうか?またファイル名が固定なので毎回上書きしてしまっても良いのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
【Excel】特定セルの内容をテキストファイルに書き出したい
Excel(エクセル)
-
VBAでメモ帳にコピペをしたいのですが…
PowerPoint(パワーポイント)
-
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Visual Basic(VBA)
-
-
4
エクセル・マクロ(VBA)で、指定範囲を保存したい。
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
【VBA】ExcelマクロでCSVファイルに保存したデータが"で囲まれてしまう
Visual Basic(VBA)
-
7
VBAでテキスト出力時のスペースについて
Visual Basic(VBA)
-
8
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
9
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
10
A列をテキストファイル名に、B列のみをファイル文書に書き出すマクロ
Visual Basic(VBA)
-
11
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
12
VBAでワークシートを引数としてサンプル関数に渡したい
Visual Basic(VBA)
-
13
【VBA】マクロの入ったファイルと同じフォルダに,出力したファイルを保存するコードについて
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
エクセルで条件に一致したセル...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
日付が未入力の際はゼロか、空...
-
別シートのセルを絶対参照にする
-
エクセルで、加筆修正したセル...
-
セルの値と同じ名前のシートを...
-
エクセルで複写のように自動入...
-
マクロ 新しいシートにデータ...
-
エクセルで指定のセルのみ完全...
-
Rangeメソッドは失敗しました。...
-
エクセルで別ブックのセルを参...
-
シート参照で変数を使いたい(EX...
-
Excelでスクロールすると文字が...
-
エクセルで1月0日と表示される!!
-
エクセルのルビがついたセルを...
-
EXCELマクロで、シート間でのコ...
-
ExcelでTODAY関数を更新させな...
-
複数シートの同じセル内容を1シ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
別シートのセルを絶対参照にする
-
エクセルで条件に一致したセル...
-
日付が未入力の際はゼロか、空...
-
エクセルで1月0日と表示される!!
-
Rangeメソッドは失敗しました。...
-
Excelシートの保護時にデータの...
-
複数シートの同じセル内容を1シ...
-
シート参照で変数を使いたい(EX...
-
ExcelでTODAY関数を更新させな...
-
Excelでスクロールすると文字が...
-
エクセルで複写のように自動入...
-
エクセルの文字
-
エクセルで指定のセルのみ完全...
-
Excelのファイル容量が減らない...
-
マクロ 新しいシートにデータ...
-
エクセルで、加筆修正したセル...
-
VBAで、セル(Range)のオブジ...
-
エクセルのマクロで全シートを...
おすすめ情報