
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
このQ&Aを見た人はこんなQ&Aも見ています
-
【Excel】特定セルの内容をテキストファイルに書き出したい
Excel(エクセル)
-
VBAでメモ帳にコピペをしたいのですが…
PowerPoint(パワーポイント)
-
エクセル・マクロ(VBA)で、指定範囲を保存したい。
Excel(エクセル)
-
-
4
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Visual Basic(VBA)
-
5
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
6
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
エクセルの各セルの内容をそれぞれ1つずつテキストファイルに出力する方法
その他(Microsoft Office)
-
10
【エクセルVBA】エクセルからテキストへの書き出し方法について【複数行指定】
Excel(エクセル)
-
11
マクロを使ってフォルダー内にあるtxtデータをエクセルにデータに変換する方法をご教授願います
Excel(エクセル)
-
12
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
13
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
14
マクロから出力されるcsvのダブルコーテーションをなくしたい。
Visual Basic(VBA)
-
15
Excelの選択範囲を特定のセル値をファイル名にしてPDFで保存する
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iPhoneのExcelアプリで、別のシ...
-
エクセルで条件に一致したセル...
-
日付が未入力の際はゼロか、空...
-
エクセルで複写のように自動入...
-
Excelシートの保護時にデータの...
-
Excelの「0」だけ非表示、小数...
-
エクセルvlookupのようなマクロ...
-
複数シートの同じセル内容を1シ...
-
ExcelでTODAY関数を更新させな...
-
エクセルで、勤務表から 日付...
-
エクセルで印刷部数をセルに表...
-
エクセルで特定のセルの値を別...
-
VBAで、セル(Range)のオブジ...
-
シート参照で変数を使いたい(EX...
-
エクセルでシート保護をかける...
-
エクセルで名簿
-
EXCELマクロで、シート間でのコ...
-
VBAで変数に関数式の結果をセッ...
-
セルを決まった数だけずらして...
-
Sheet1のセルの一連番号がSheet...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
日付が未入力の際はゼロか、空...
-
エクセルで1月0日と表示される!!
-
エクセルで条件に一致したセル...
-
複数シートの同じセル内容を1シ...
-
ExcelでTODAY関数を更新させな...
-
別シートのセルを絶対参照にする
-
Excelでスクロールすると文字が...
-
EXCELのハイパーリンクのセルを...
-
エクセルで20万行あるシート...
-
エクセルで、加筆修正したセル...
-
エクセル ハイパーリンクで画像...
-
Rangeメソッドは失敗しました。...
-
マクロ 新しいシートにデータ...
-
(Excel)あるセルに文字を入力...
-
エクセルで複写のように自動入...
-
EXCEL関数でシート名が変わる可...
-
エクセルで指定のセルのみ完全...
おすすめ情報