
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
CSVファイルの特定行の削除
Visual Basic(VBA)
-
テキストファイルの特定行の削除方法
Visual Basic(VBA)
-
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
Access インポート
Access(アクセス)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
VBAでCSVの1行目だけを書き換える方法
Excel(エクセル)
-
8
エクセルのマクロで行と列の削除してCSV保存
Excel(エクセル)
-
9
【ExcelVBA】300万件越えCSVから条件を満たす行だけ抽出するには?
Visual Basic(VBA)
-
10
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
11
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
12
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
13
Excel csv保存 列数が異なる場合に、余分にカンマをつけない(ヘッダとデータの列数を変える)
Excel(エクセル)
-
14
Accessのテーブルを既存のExcelファイルへエクスポートしたいんですが
Access(アクセス)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
VBAで文字を反映させると255文字の制限になってしまいます。
Visual Basic(VBA)
-
17
テキストファイルの最終行を消すには。
Visual Basic(VBA)
-
18
ウォッチ式の文字数制限について
Visual Basic(VBA)
-
19
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
20
exeファイルの中身を見ることは可能ですか?
フリーソフト
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Yahooフリマってどれくらい時間...
-
VBA 編集可能な範囲の指定につ...
-
言論統制を受けたことはありま...
-
バッチファイルを使用したsql@p...
-
outlook迷惑メールフォルダーに...
-
google chromeのブックマークが...
-
もう関わりたくない人がいたらL...
-
これはやらせですよね?
-
スマホのアプリを削除すると、...
-
VBA IF文でORを使ったとき後ろ...
-
指定した文字があった場合、そ...
-
職場の人と仕事中に喧嘩して LI...
-
VBA 削除ボタン
-
Microsoft Access 2016でエラー...
-
ウェブページへのアクセス不可 ...
-
エクセルVBAで、行削除⇒別シー...
-
アクセスにおいて間違って削除...
-
ヤフー知恵袋は違反通報しても...
-
【エクセル】セル内の右側のみ...
-
iphone movファイル削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えてgooでガイドライン違反と...
-
教えてgooでコメントしてすぐ消...
-
先ほどした質問が削除されまし...
-
Yahooフリマってどれくらい時間...
-
言論統制を受けたことはありま...
-
スマホのアプリを削除すると、...
-
outlook迷惑メールフォルダーに...
-
告白してフラれた相手の連絡先...
-
指定した文字があった場合、そ...
-
Windows11に残されたWindows10...
-
もう関わりたくない人がいたらL...
-
ATMに登録されている振込先を削...
-
VBA:Openステートメントで開い...
-
ウェブページへのアクセス不可 ...
-
アクセスにおいて間違って削除...
-
バッチファイルを使用したsql@p...
-
喧嘩をしてLINE削除され、 また...
-
これはやらせですよね?
-
エクセルで住所の混在する「丁...
-
ORA-14452について
おすすめ情報