|    | 
     ▼kanabun さん: 
 
VBA初心者です。 
 
ご教授ありがとうございました。 
おかげで解決致しました。 
 
大変助かりました。ありがとうございました。 
 
>▼VBA初心者 さん: 
> 
>>1行目と2行目を見出しとしてコピーして、1行目と2行目は固定 
>>してExcel表に出力したいです。 
>> 
>>'◆見出し行をCopyしてのところを[A1:A2]にしたり、Tbl.Rows(2).Copy 
>>にしたりしても2行目だけ出力されたりしてしまいます。 
> 
>>Sub Lesson_Print() 
>>  Dim Tbl As Range 
>>  Dim v, i As Long, n As Long, n1 As Long 
>>  Dim myPath As String 
>>  Dim nSheet As Long 
>>  Dim newBook As Workbook 
>>  Dim Bookname As String 
>>   
>>  With Application 
>>    nSheet = .SheetsInNewWorkbook 
>>    .SheetsInNewWorkbook = 1 
>>    .DisplayAlerts = False 
>>  End With 
>>   
>>  myPath = ActiveWorkbook.Path & "\" 
>>  Set Tbl = ActiveSheet.[A1].CurrentRegion '◆ A列で Sort済み 
>>  n = Tbl.Rows.Count 
>>  v = Tbl.Resize(Tbl.Rows.Count + 1, 1).Value 
>>  n1 = 2 
>>  For i = 2 To n 
>>    If v(i, 1) <> v(i + 1, 1) Then '下と違えば 
>>      With Workbooks.Add 
>>        Tbl.Rows(1).Copy .Sheets(1).[A1] '◆見出し行をCopy 
>>        Tbl.Rows(n1 & ":" & i).Copy .Sheets(1).[A2] 
>> 
>>        .Sheets(1).UsedRange.EntireColumn.AutoFit '◆挿入 
>> 
>>   (中  略) 
>> 
>>  Application.SheetsInNewWorkbook = nSheet 
>>   
>>  MsgBox "出力しました" 
>> 
>>End Sub 
> 
>この部分、こんな感じにしてみたらどうですか? 
> 
>Sub Lesson_Print2() 'タイトル2行 
>  Dim Tbl As Range 
>  Dim v, i As Long, n As Long, n1 As Long 
>  Dim myPath As String 
>  Dim newBook As Workbook 
>  Dim Bookname As String 
>  
>  Application.DisplayAlerts = False 
>  
>  myPath = ActiveWorkbook.Path & "\" 
>  Set Tbl = ActiveSheet.[A1].CurrentRegion '◆ A列で Sort済み 
>  n = Tbl.Rows.Count 
>  v = Tbl.Resize(n + 1, 1).Value 
>  n1 = 3    '◆変更 
>  For i = 3 To n '◆変更 
>    If v(i, 1) <> v(i + 1, 1) Then '下と違えば 
>      With Workbooks.Add(xlWBATWorksheet) '◆変更 シート1枚のBook 
>        Tbl.Rows("1:2").Copy .Sheets(1).[A1] '◆見出し行2行をCopy 
>        Tbl.Rows(n1 & ":" & i).Copy .Sheets(1).[A3] '3行目へ 
> 
>        .Sheets(1).UsedRange.EntireColumn.AutoFit '◆挿入 
> 
>>   (中  略) 
>> 
>   'Application.SheetsInNewWorkbook = nSheet 
>>   
>>  MsgBox "出力しました" 
>> 
>>End Sub 
 | 
     
    
   |