
VBAでOpenステートメントで開いたCSVファイルの特定行を削除する方法を探しています。
Accessのように、行指定.Deleteみたいな動作はないんでしょうか?
【例】
削除前 (テキストファイルで開くとこういう状態)
1,1,1,1,1
2,2,2,2,2
3,3,3,3,3 ←3行目だけ削除したい
4,4,4,4,4
5,5,5,5,5
削除後
1,1,1,1,1
2,2,2,2,2
4,4,4,4,4 ←3行目が削除されている
5,5,5,5,5
探してみたのですが、探し方が悪いようで
・ブックで開いてでの操作
・削除対象行以外を他のファイルにコピーした擬似削除
しか見つけられませんでした。
上記の方法以外で何か良い方法があればご教授していただきたく思います。
ファイルは【例】の様な少数行のものではなく、ブックでは表示しきれない行数&行削除→削除されたファイルの確定→行削除を繰り返すことを想定しています。
No.2ベストアンサー
- 回答日時:
郵便番号CSV の全国版(123,000行)で、100,000行目の削除も、すんなりとこなしましたが、連続して削除するのは試していません。
何か大きな凡ミスしていないとよいのですが。
Sub TextLine_Delete()
Dim Fname As String
Dim FNo As Integer
Dim TextLine As String
Dim i As Long
Dim ar1 As Object
Set ar1 = CreateObject("System.Collections.ArrayList")
Fname = "Test1.csv"
FNo = FreeFile()
Open Fname For Input As #FNo
Do While Not EOF(FNo)
Line Input #FNo, TextLine
ar1.Add TextLine
Loop
Close #FNo
ar1.RemoveAt (99999) '100,000行目削除(0から始まります)
FNo = FreeFile()
Open Fname For Output As #FNo
For i = 0 To ar1.Count - 1
Print #FNo, ar1(i)
Next i
Close #FNo
MsgBox "Finish!"
End Sub
回答ありがとうございます。
ArrayListにデータを全て1行ずつ入れた状態でArrayListからの削除にする、ということですね。
今回はありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/10/03 09:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/04 10:48
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 2 2022/11/18 15:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
このQ&Aを見た人はこんなQ&Aも見ています
-
CSVファイルの特定行の削除
Visual Basic(VBA)
-
テキストファイルの特定行の削除方法
Visual Basic(VBA)
-
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
6
テキストファイルのフィールド行のみ削除したい
Visual Basic(VBA)
-
7
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
8
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
9
Access インポート
Access(アクセス)
-
10
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
11
EXCEL(VBA) 末尾の改行のみ削除したい
Excel(エクセル)
-
12
最終行の改行について
Visual Basic(VBA)
-
13
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
14
vbsで最後の行を削除する
その他(プログラミング・Web制作)
-
15
EXCELのVBAでEOFを誤認識
Visual Basic(VBA)
-
16
エクセルのマクロで行と列の削除してCSV保存
Excel(エクセル)
-
17
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
18
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
19
テキストファイルの最終行を消すには。
Visual Basic(VBA)
-
20
VBAでの行削除について
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Youtubeの書き起こしの機能につ...
-
指定した文字があった場合、そ...
-
Yahooフリマってどれくらい時間...
-
VBA 編集可能な範囲の指定につ...
-
アクセスにおいて間違って削除...
-
告白してフラれた相手の連絡先...
-
インスタグラムのギャラリーの...
-
バッチファイルを使用したsql@p...
-
2度と連絡とらないとお互い納得...
-
喧嘩をしてLINE削除され、 また...
-
VBA:Openステートメントで開い...
-
エクセルVBAで行削除時にエラー...
-
LINEのホームのベルマークにあ...
-
エクセルで住所の混在する「丁...
-
メーリングリストから特定の人...
-
ここに本当の事や、本当の悩み...
-
Cookieやキャッシュは削除しな...
-
もう関わりたくない人がいたらL...
-
【C#】ifと#ifの違い、そして#e...
-
【ExcelVBA】指定のシート以外...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Yahooフリマってどれくらい時間...
-
指定した文字があった場合、そ...
-
告白してフラれた相手の連絡先...
-
VBA:Openステートメントで開い...
-
mp3の埋め込み画像の削除ができ...
-
バッチファイルを使用したsql@p...
-
喧嘩をしてLINE削除され、 また...
-
今日の日付が過ぎたらその行を...
-
エクセルで住所の混在する「丁...
-
Windows11に残されたWindows10...
-
もう関わりたくない人がいたらL...
-
【エクセル】セル内の右側のみ...
-
アクセスにおいて間違って削除...
-
VBA IF文でORを使ったとき後ろ...
-
エクセルVBAで行削除時にエラー...
-
ポケモンGOについて質問したい...
-
エクセルで下の空白行を削除したい
-
(Access)複数条件の重複デー...
-
投稿した書き込みの削除の方法...
-
メーリングリストから特定の人...
おすすめ情報