Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9302 / 13644 ツリー ←次へ | 前へ→

【28115】複数あるテキストファイルの特定の行を一括で変更 山田正幸 05/8/29(月) 14:57 質問[未読]
【28120】Re:複数あるテキストファイルの特定の行... 小僧 05/8/29(月) 16:50 発言[未読]
【28122】Re:複数あるテキストファイルの特定の行を... だるま 05/8/29(月) 16:55 発言[未読]
【28131】Re:複数あるテキストファイルの特定の行を... 山田正幸 05/8/29(月) 18:52 質問[未読]
【28138】Re:複数あるテキストファイルの特定の行を... だるま 05/8/29(月) 19:51 回答[未読]
【28153】Re:複数あるテキストファイルの特定の行を... 山田正幸 05/8/29(月) 22:30 お礼[未読]
【28155】Re:複数あるテキストファイルの特定の行を... だるま 05/8/29(月) 22:41 回答[未読]
【28158】Re:複数あるテキストファイルの特定の行を... 山田正幸 05/8/29(月) 22:47 お礼[未読]

【28115】複数あるテキストファイルの特定の行を一...
質問  山田正幸  - 05/8/29(月) 14:57 -

引用なし
パスワード
   お世話になります。
エクセル初級者です。
■複数あるテキストファイルの特定の行を一括で変更することは可能でしょうか?
現在、エクセルのA行にテキストファイルのパスがあり、B行に変更したい内容があります。


どなたか、よろしくお願いいたします。

【28120】Re:複数あるテキストファイルの特定の行...
発言  小僧  - 05/8/29(月) 16:50 -

引用なし
パスワード
   ▼山田正幸 さん:
こんにちは。

>現在、エクセルのA行にテキストファイルのパスがあり、
>B行に変更したい内容があります。

現在、A行、B行にどういったデータが並んでいるのかと、
テキストファイルの変更前と変更後の例などが
ご提示して頂くと回答がつきやすくなると思われます。

【28122】Re:複数あるテキストファイルの特定の行...
発言  だるま WEB  - 05/8/29(月) 16:55 -

引用なし
パスワード
   >■複数あるテキストファイルの特定の行を一括で変更することは可能でしょうか?
>現在、エクセルのA行にテキストファイルのパスがあり、B行に変更したい内容があります。

こんにちは ^d^

変更ということは、変更前と変更後の情報が必要ではありませんか。
それはB列に入っているのかな?

とりあえず、フリーソフトでよろしければこんなのがありますが。

文字置換えツール
http://www.vector.co.jp/soft/win95/business/se288947.html

【28131】Re:複数あるテキストファイルの特定の行...
質問  山田正幸  - 05/8/29(月) 18:52 -

引用なし
パスワード
   お世話になっております。
説明不足でした。

A列(テキストファイルのパス)     B列(テキストファイルの
                    6行目に入れたい値)
D:\yamada\553605_津幡.txt        File "553605_津幡.TIF"
D:\yamada\553606_石動.txt        File "553606_石動.TIF"
D:\yamada\553607_戸出.txt        File "553607_戸出.TIF"
D:\yamada\553615_加賀高松.txt    File "553615_加賀高松.TIF"

テキストファイルの内容(左の番号は行番号です)
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
1    !Table
2    !Version 300
3    !charset WindowsJapanese
4    
5    Definition Table
6     File "553605m_ras25k.TIF" ←この6行目を削除しB列の値を挿入
7     Type "RASTER"
8     (136.625,36.75) (0,0) Label "Pt 1" ,
9     (136.625,36.666667) (0,3733) Label "Pt 2" ,
10     (136.75,36.666667) (4508,3733) Label "Pt 3" ,
11     (136.75,36.75) (4508,0) Label "Pt 4"
12     CoordSys Earth Projection 26, 97, "m", 139,36
13     Units "degree"
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
テキストファイルの6行目をB列の値に置換またはテキストファイルの6行目を削除しB列の値を挿入したいのですが、よろしくお願いいたします。

【28138】Re:複数あるテキストファイルの特定の行...
回答  だるま WEB  - 05/8/29(月) 19:51 -

引用なし
パスワード
   では、こんなもんでどうでしょうか。^d^

Sub test()
  Dim myRange As Range
  Dim myCell As Range
  Dim myPath As String
  Dim N As Integer
  Dim D As String
  Dim A As Variant
  
  Set myRange = Range("A1", Range("A65536").End(xlUp))
  
  For Each myCell In myRange.Cells
    myPath = myCell.Value
    N = FreeFile
    Open myPath For Input As #N
    D = InputB(LOF(N), N)
    D = StrConv(D, vbUnicode)
    Close #N
    
    A = Split(D, vbCrLf)
    A(5) = myCell.Offset(, 1).Value
    D = join(A, vbCrLf)
    
    N = FreeFile
    Open myPath For Output As #N
    Print #N, D;
    Close #N
  Next
  
  Set myCell = Nothing
  Set myRange = Nothing
End Sub

【28153】Re:複数あるテキストファイルの特定の行...
お礼  山田正幸  - 05/8/29(月) 22:30 -

引用なし
パスワード
   ▼だるま さんへ
ありがとうございます。
ファイル数が、1000近くあったのに、
あっという間に思い通りのファイルの変更できました。
vbaすばらしい!

ただいま勉強中なのですが、
6行目を削除というのは、作成して頂いた
20行目に相当するのでしょうか?


1Sub test()
2  Dim myRange As Range
3  Dim myCell As Range
4  Dim myPath As String
5  Dim N As Integer
6  Dim D As String
7  Dim A As Variant
8      
9  Set myRange = Range("A1", Range("A65536").End(xlUp))
10      
11  For Each myCell In myRange.Cells
12    myPath = myCell.Value
13    N = FreeFile
14    Open myPath For Input As #N
15    D = InputB(LOF(N), N)
16    D = StrConv(D, vbUnicode)
17    Close #N
18        
19    A = Split(D, vbCrLf)
20    A(5) = myCell.Offset(, 1).Value
21    D = join(A, vbCrLf)
22        
23    N = FreeFile
24    Open myPath For Output As #N
25    Print #N, D;
26    Close #N
27  Next
28      
29  Set myCell = Nothing
30  Set myRange = Nothing
31  End Sub

ありがとうございました。

【28155】Re:複数あるテキストファイルの特定の行...
回答  だるま WEB  - 05/8/29(月) 22:41 -

引用なし
パスワード
   >6行目を削除というのは、作成して頂いた
>20行目に相当するのでしょうか?
そうですね。

読み込んで行分割した配列(各行)の添え字が0からですので。

それと削除ではなく置き換え(変更)ですね。^d^

【28158】Re:複数あるテキストファイルの特定の行...
お礼  山田正幸  - 05/8/29(月) 22:47 -

引用なし
パスワード
   ▼だるま さんへ
いろいろ、ありがとうございます。
これをきにvbaもっと勉強します。

9302 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free