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.1
- 回答日時:
open はそこまでの機能はありません。
時間を稼ぎたいのならば、削除する場所をどこかに覚えておいて、最後にまとめて削除するところを飛ばしてコピーするのが良いと思います。
回答ありがとうございます。
「一致した行は次の照らし合わせからは外したいので削除したい。」
という願いでの削除動作なので、今回ご回答いただきました動作では望むものになりません。
せっかくご回答いただきましたが申し訳ございません。
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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
CSVファイルの特定行の削除
Visual Basic(VBA)
-
テキストファイルの特定行の削除方法
Visual Basic(VBA)
-
VBAでCSVファイルの特定行を書き換える方法はあるのでしょうか?
その他(プログラミング・Web制作)
-
-
4
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
5
VBAでの行削除について
その他(プログラミング・Web制作)
-
6
vbsで最後の行を削除する
その他(プログラミング・Web制作)
-
7
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
8
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
9
最終行の改行について
Visual Basic(VBA)
-
10
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
11
Access インポート
Access(アクセス)
-
12
EXCEL VBAでテキストファイルの特定の場所にデータを書き込む方法
Visual Basic(VBA)
-
13
Excelマクロ 空白セルを無視してCSV出力
Excel(エクセル)
-
14
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
15
テキストファイルからデータを削除したい。
Visual Basic(VBA)
-
16
エクセルでエラーが出て困っています。
Excel(エクセル)
-
17
実行時エラー3001「引数が間違った型、許容範囲外、または競合しています。」
Visual Basic(VBA)
-
18
EXCEL(VBA) 末尾の改行のみ削除したい
Excel(エクセル)
-
19
エクセルのマクロで行と列の削除してCSV保存
Excel(エクセル)
-
20
CSVファイルの指定列だけを読み込んでEXCELに表示したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
回答が付かなかったので、再質...
-
教えてgooの機能に関するアンケ...
-
VBA:Openステートメントで開い...
-
もう関わりたくない人がいたらL...
-
指定した文字があった場合、そ...
-
女友達にLINEしたら、既読スル...
-
恋愛相談かてで
-
エクセルで住所の混在する「丁...
-
アクセスにおいて間違って削除...
-
マクロで特定の行まで削除する...
-
ダブルクォーテーションの削除...
-
VBA IF文でORを使ったとき後ろ...
-
バッチファイルを使用したsql@p...
-
ハメ撮りが流出したら
-
教えて!gooで、自分がした回答...
-
日テレニュースHP、記事削除は...
-
いちとか1コメとかいう糞迷惑な...
-
教えて!goo質問の削除方法
-
エクセルVBAで行削除時にエラー...
-
Windows11に残されたWindows10...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA:Openステートメントで開い...
-
「医者も看護師も自分に嫌がら...
-
ハメ撮りが流出したら
-
指定した文字があった場合、そ...
-
教えて!gooにはどのカテゴリが...
-
もう関わりたくない人がいたらL...
-
真剣な質問ほど消されるのはど...
-
Facebookメッセンジャーの不具合
-
インスタグラムのギャラリーの...
-
エクセルで住所の混在する「丁...
-
回答してる間に質問が消えるっ...
-
アクセスにおいて間違って削除...
-
喧嘩をしてLINE削除され、 また...
-
バッチファイルを使用したsql@p...
-
Facebookに自分が四つもアップ...
-
ウェブページへのアクセス不可 ...
-
同じ質問
-
日テレニュースHP、記事削除は...
-
女友達にLINEしたら、既読スル...
-
エクセルVBAで行削除時にエラー...
おすすめ情報