|    | 
     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 
 
長くてすみません。 
 | 
     
    
   |