![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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も見ています
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
【Excel】特定セルの内容をテキストファイルに書き出したい
Excel(エクセル)
-
VBAでテキスト出力時のスペースについて
Visual Basic(VBA)
-
エクセル・マクロ(VBA)で、指定範囲を保存したい。
Excel(エクセル)
-
-
4
【VBA】ExcelマクロでCSVファイルに保存したデータが"で囲まれてしまう
Visual Basic(VBA)
-
5
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Visual Basic(VBA)
-
6
EXCEL VBAでテキストファイルの特定の場所にデータを書き込む方法
Visual Basic(VBA)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
VBAでメモ帳にコピペをしたいのですが…
PowerPoint(パワーポイント)
-
9
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
10
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
11
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
12
Excelの保存で "を付けないように保存できる?"
Excel(エクセル)
-
13
文字列からタブコードを取り除きたい
Visual Basic(VBA)
-
14
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
15
VBAでEmpty値って何ですか?
Excel(エクセル)
-
16
Excelでcsvやtxtで保存する時にダブルクォートが勝手に付く
Excel(エクセル)
-
17
【Excel】 VBAを使って毎回名前が変わるファイルを添付してメール送信したい。
Excel(エクセル)
-
18
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
19
タブ区切りデータからダブルコーテーションを外したい
Excel(エクセル)
-
20
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで1月0日と表示される!!
-
Excelで複数シートの選択セルを...
-
Excelの「0」だけ非表示、小数...
-
エクセルで条件に一致したセル...
-
別シートのセルを絶対参照にする
-
Rangeメソッドは失敗しました。...
-
日付が未入力の際はゼロか、空...
-
Excelのファイル容量が減らない...
-
エクセルで特定の文字を打つと...
-
シート参照で変数を使いたい(EX...
-
エクセル マクロ ボタンを押...
-
エクセル ハイパーリンクで画像...
-
エクセルでシート保護をかける...
-
Excelでスクロールすると文字が...
-
Excelで連勤の氏名を抽出する
-
エクセルでセルが指定できない
-
エクセルの文字
-
if関数とright関数を組み合わせて…
-
エクセルで20万行あるシート...
-
Excelシートの保護時にデータの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
日付が未入力の際はゼロか、空...
-
Excelで複数シートの選択セルを...
-
エクセルで1月0日と表示される!!
-
エクセルで条件に一致したセル...
-
Rangeメソッドは失敗しました。...
-
別シートのセルを絶対参照にする
-
シート参照で変数を使いたい(EX...
-
Excelシートの保護時にデータの...
-
複数シートの同じセル内容を1シ...
-
エクセルで複写のように自動入...
-
エクセルの文字
-
Excelでスクロールすると文字が...
-
(Excel)あるセルに文字を入力...
-
Excelのファイル容量が減らない...
-
マクロ 新しいシートにデータ...
-
エクセルで別シートからの最大...
-
ExcelでTODAY関数を更新させな...
-
エクセルのセルに、マウスで選...
-
EXCELマクロで、シート間でのコ...
おすすめ情報