Excel VBA質問箱 IV

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

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


12348 / 13645 ツリー ←次へ | 前へ→

【10972】別ファイルの検索&コピー 丹家 04/2/20(金) 11:42 質問
【10973】Re:別ファイルの検索&コピー IROC 04/2/20(金) 11:57 回答
【10975】Re:別ファイルの検索&コピー 丹家 04/2/20(金) 14:16 お礼

【10972】別ファイルの検索&コピー
質問  丹家  - 04/2/20(金) 11:42 -

引用なし
パスワード
   はじめまして、現在会社でエクセルを使って
作業をすることとなりVBAを組んでいるのですが

Book1.xlsに作ったコマンドボタンを押すと
同名、同フォルダに存在するBook1.csvというファイルから
<data>という行から</data>という行までの行番号を検索して
その間の内容をすべてxlsの方にコピーする。
というプログラムを作っているのですがどうしても検索がcsvの方ではなくて
xlsの方を検索してしまいます。
どこが違うかご指摘願えないでしょうか

Book1.csv構成
<data>
test1, test1_xxx, test1_yyy ・・・
test2, test2_xxx,

・(行、列ともに数は不定)
</data>


(プログラム)
Private Sub CommandButton1_Click()
  'ファイル名を取得
  ansiFileName = ActiveWorkbook.Name
  ansiFullName = ActiveWorkbook.FullName
  
  '"."以降の文字列を削除
  nDotIndex = InStr(ansiFileName, ".")  '
  If nDotIndex > 0 Then
    ansiFileNameCutExt = Left(ansiFullName, Len(ansiFullName) - Len(ansiFileName) + nDotIndex - 1)
  Else
    ansiFileNameCutExt = ansiFullName
  End If
   
  ' 同名のcsvファイルの読み込み
  load_file = ansiFileNameCutExt + ".csv"
  Workbooks.Open Filename:=load_file

  
  '<data>〜</data>までの位置検索
  start_pos = GetLine("<data>")
  end_pos = GetLine("</data>")
 
  'xlsの方にコピー (わからない部分)
  'Range("A1:C8").Copy ThisWorkbook.Sheets("Sheet1").Range("A2")

  Workbooks(load_file).Close   
  
  
End Sub


Public Function GetLine(ByVal w_findstr) As Integer
    Dim i As Integer
    For i = 1 To Range("a1000").End(xlUp).Row
      If Cells(i, "a").Value = w_findstr Then
        GetLine = i
        Exit Function
      End If
    Next i
End Function

【10973】Re:別ファイルの検索&コピー
回答  IROC  - 04/2/20(金) 11:57 -

引用なし
パスワード
   CSVファイルを開いて、FINDメソッドで検索して、
行番号を取得しては如何でしょうか?

それともCSVファイルが65536行以上で、開くことができないとか・・?

【10975】Re:別ファイルの検索&コピー
お礼  丹家  - 04/2/20(金) 14:16 -

引用なし
パスワード
   やっぱりヘルプファイルが無いと非常につらいものがあります・・・
とりあえずFindでなんとか力任せにできました。
ありがとうございました。

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