
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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
CSVファイルの特定行の削除
Visual Basic(VBA)
-
テキストファイルの特定行の削除方法
Visual Basic(VBA)
-
VBAでCSVファイルの特定行を書き換える方法はあるのでしょうか?
その他(プログラミング・Web制作)
-
-
4
VBAでの行削除について
その他(プログラミング・Web制作)
-
5
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
6
Excelマクロ 空白セルを無視してCSV出力
Excel(エクセル)
-
7
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
8
エクセルのマクロで行と列の削除してCSV保存
Excel(エクセル)
-
9
Access インポート
Access(アクセス)
-
10
EXCEL VBAでテキストファイルの特定の場所にデータを書き込む方法
Visual Basic(VBA)
-
11
VBAでCSVの1行目だけを書き換える方法
Excel(エクセル)
-
12
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
13
CSV形式にすると出てくる空白を消したいです。
その他(Microsoft Office)
-
14
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
15
マクロから出力されるcsvのダブルコーテーションをなくしたい。
Visual Basic(VBA)
-
16
CSVファイルの中で、「 , 」カンマを使いたい
その他(コンピューター・テクノロジー)
-
17
csvファイルを開かずに文字を検索し行を抽出したい
Visual Basic(VBA)
-
18
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
19
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
20
【ExcelVBA】各セルをダブルクォーテーションで括ってCSV保存したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ウェブページへのアクセス不可 ...
-
憲法改正(改悪)の目的は【緊...
-
ドコモ・オンラインショップの...
-
Y!天気
-
教えてgooでは、自分の質問や回...
-
バッチファイルを使用したsql@p...
-
VBA:Openステートメントで開い...
-
指定した文字があった場合、そ...
-
【ExcelVBA】指定のシート以外...
-
エクセルで住所の混在する「丁...
-
アクセスにおいて間違って削除...
-
エクセルVBAで行削除時にエラー...
-
エクセルで下の空白行を削除したい
-
【C#】ifと#ifの違い、そして#e...
-
勝手に消えた質問
-
LINEのホームのベルマークにあ...
-
インスタグラムのギャラリーの...
-
もう関わりたくない人がいたらL...
-
Adobe AcrobatのPDFのページ削除
-
今日の日付が過ぎたらその行を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウェブページへのアクセス不可 ...
-
知恵袋の方で質問が規約違反に...
-
質問の削除について
-
ここの削除基準っておかしくな...
-
良いか悪いかだけを教えて下さい
-
AMAZONの他人の乗っ取り...
-
知恵袋よりこのサイトの方が容...
-
メール設定でMicrosoft 365(of...
-
知恵袋の方で質問が規約違反に...
-
月に一度回答のついた質問を削...
-
VBA:Openステートメントで開い...
-
【エクセル】セル内の右側のみ...
-
アクセスにおいて間違って削除...
-
エクセルで住所の混在する「丁...
-
もう関わりたくない人がいたらL...
-
指定した文字があった場合、そ...
-
【ExcelVBA】指定のシート以外...
-
バッチファイルを使用したsql@p...
-
エクセルVBAで行削除時にエラー...
-
喧嘩をしてLINE削除され、 また...
おすすめ情報