ここから本文です

エクセルでA列(あるいはA列の指定した一部)をテキスト出力(.txt)し、そのテキス...

dpb********さん

2018/10/2315:52:10

エクセルでA列(あるいはA列の指定した一部)をテキスト出力(.txt)し、そのテキストにセルG1の文字列の名前を付けて、

元のエクセルが保存されている同じフォルダに保存するを以下のようにやっていました。

Sub Sample()
Dim r1 As Long, r2 As Long
Dim i As Long, p As String
r1 = 1
r2 = Cells(Rows.Count, "A").End(xlUp).Row
p = ThisWorkbook.Path & "\"
Open p & Range("G1").Value & ".txt" For Output As #1
For i = r1 To r2
Print #1, Cells(i, "A").Text
Next i
Close #1
End Sub

使用頻度が増えるにつれフィルタでA列を操作するようになりました。
そうすると上記のマクロでは非表示になっている行もテキストに書き出してしまいます。
可視化されているもののみ書き出すマクロをお教えいただけないでしょうか?

いろいろと試してはみたのですが、うまくいきません。
よろしくお願いします。

閲覧数:
55
回答数:
3
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

Prometheusさん

2018/10/2316:47:26

Print #1, Cells(i, "A").Text

の行を

If Rows(i).Hidden = False Then
Print #1, Cells(i, "A").Text
End If

に入れ替えてください。

「Rows(i).Hidden = False」というのは、これから処理する行が「非表示がFalseなら」、すなわち「表示なら」処理します。

質問した人からのコメント

2018/10/25 14:43:00

ありがとうございます。
ご解説も復習させていただきます。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

taihenda****さん

2018/10/2319:28:11

Sub Sample()
Dim r1 As Long, r2 As Long
Dim i As Long, p As String
Dim rng As Range
Set rng = Columns(1).SpecialCells(xlVisible)
r1 = 1
r2 = Cells(Rows.Count, "A").End(xlUp).Row
p = ThisWorkbook.Path & "\"
Open p & Range("G1").Value & ".txt" For Output As #1
For i = r1 To r2
Print #1, rng(i).Text
Next i
Close #1
End Sub


可視セルだけを変数に入れています。

nan********さん

2018/10/2316:21:10

参考にどうぞ

Sub Sample()
Dim r1 As Long, r2 As Long
Dim i As Long, p As String
Dim Rng As Range
r1 = 1
r2 = Cells(Rows.Count, "A").End(xlUp).Row

'先頭のセルを選択
Cells(1, "A").Select
Set Rng = ActiveCell

p = ThisWorkbook.Path & "\"
Open p & Range("G1").Value & ".txt" For Output As #1

'ActiveCellの行がA列最終行を超えるまでループ
Do Until r2 < ActiveCell.Row
Print #1, ActiveCell.Text
'非表示でないセルが見つかるまでループ
Do
Set Rng = Rng.Offset(1)
If Rng.EntireRow.Hidden Then Set Rng = Rng.Offset(1)
Loop Until Rng.EntireRow.Hidden = False
Rng.Activate
Loop
Close #1
Set Rng = Nothing
End Sub

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる