| 
    
     |  | Lindy さん御親切にして頂き本当に有難うございます。いじりすぎて訳が分からなくなってしまいお願いしてしまいました。まだ触れたことのない構文もあり今後の課題として勉強します。最終的には二つのプログラムを一つにしようとしてますが 、最初に作ったプログラムは何所に何を書いても受け付けてくれません。プログラム上無理なのでしょうか。アドバイスをお願い頂けますか?本当に図々しくてすみません。
 
 最初のプログラムはsheet1内の業者名を取得し業者数分のシートを作りタブに業者名をつけます。
 Private Sub CommandButton1_Click()
 Dim ws_list As Worksheet
 Dim ws_add As Worksheet
 Dim theName As String    '会社名の保存用
 Dim i As Integer
 Dim startRow As Integer   'コピー範囲の先頭行の位置
 Dim endRow As Integer    'コピー範囲の最終行の位置
 Sheets("Sheet1").Activate
 Range("C2").Select     'データを会社名順にソートしておく
 Range("A2:J3000").Sort Key1:=Range("C2"),Order1:=xlAscending,Header:= _
 xlGuess, OrderCustom:=1, chCase:=False,Orientation:=xlTopToBottom, _
 SortMethod:=xlPinYin, DataOption1:=xlSortNormal
 Set ws_list = Worksheets("Sheet1")
 '最初の会社名でシートを作成する
 startRow = 2
 theName = ws_list.Cells(2, 3)
 Set ws_add = Worksheets.Add
 ws_add.Name = theName
 For i = 2 To 1000
 If ws_list.Cells(i, 3) <> theName Then
 '会社名が変わったときの処理
 '旧会社名のコピー処理
 endRow = i - 1
 ws_list.Select
 ws_list.Range(Cells(startRow, 1), (Cells(endRow, 10))).Copy
 ws_add.Paste
 '新会社名のシート作成処理
 theName = ws_list.Cells(i, 3)
 If theName <> "" Then
 Set ws_add = Worksheets.Add
 ws_add.Name = theName
 End If
 '新会社名の開始位置を保存
 startRow = i
 End If
 Next
 Set ws_add = Nothing
 Set ws_list = Nothing
 End Sub
 
 長くてすみません。
 
 |  |