|    | 
     宜しくお願いします。説明不足で申し訳ありません。 
 
>もちろんマクロでAutoFilterをかけるわけです。 
!なるほど。 
 
>ということは、CSVファイル開いてみるまで、どういう項目が何列あるか、 
分らないということですか? 
その通りです。 
 
>のようなCSVファイル例をみますと、1行目に項目名がないですけど? 
項目名がないとフィルタかけられませんから、無いばあいはExcelで開いてから 
ダミーの列見出しを挿入することになります。 
CSVファイルには項目名がありません。 
まず列見出しの挿入を考えなければならないのですね。なるほど。 
 
>あと、再度質問ですが、 
CSVの項目数(列数)は都度変わるけれど、「日付」データは必ず A列固定と 
考えていいですか? でないと、日付の列をマクロで探さないといけません。 
それと、たとえば 
8/31 
の行はひとつのCSVに 複数行ありうるんですよね? 
 
CSVの列数は都度変わります。 
日付データは必ずA列に存在します。日付だけは固定です。 
8/31はひとつのCSVファイルに複数行必ず存在します。 
営業時間内分のログが入っているので、数十行必ず存在します。 
 
 
Sub prog4_2() 
  dim myCri As String 
  Dim myRow As Long 
  Dim Sh2 As Worksheet, Sh3 As Worksheet 
    Set Sh2 = Worksheets("データ") 
    Set Sh3 = Worksheets("抽出") 
 
    myCri = InputBox("日付を入力して下さい") 
 
    With Sh2 
      .Range("A1").AutoFilter Field:=1, Criteria1:=myCri 
      myRow = .Range("A" & Rows.Count).End(xlUp).Row 
      Sh3.Range("A:月によって変わる最終列").ClearContents 
 
      .Range("A1:月によって変わる最終列" & myRow).Copy Sh3.Range("空白の列の1から貼るように") 
      .Range("A1").AutoFilter 
    End With 
    Worksheets("抽出").Activate 
    Range("A1").Select 
End Sub 
 
コメントを見て、似たような事例を引っ張ってきました。 
やはり空白の列の求め方が分からないのと、貼りつける別シートは新規で作成したいのですが……。 
ファイルを開いて見出し行を挿入する処理が分かりませんでした。 
知識不足で申し訳ないです、宜しくお願いします。 
 
 | 
     
    
   |