Excel VBA質問箱 IV

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

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


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

【15549】並び替えがうまくいきません ぱな 04/6/29(火) 10:11 質問[未読]
【15550】Re:並び替えがうまくいきません Asaki 04/6/29(火) 10:18 回答[未読]
【15660】Re:並び替えがうまくいきません ぱな 04/7/1(木) 17:23 質問[未読]
【15661】Re:並び替えがうまくいきません Asaki 04/7/1(木) 17:41 回答[未読]
【15667】Re:並び替えがうまくいきません [名前なし] 04/7/1(木) 21:40 回答[未読]

【15549】並び替えがうまくいきません
質問  ぱな  - 04/6/29(火) 10:11 -

引用なし
パスワード
   ExcelシートのM列に項目、N列に件数を入力してありN列をキーに降順に並び替えをさせたいのですが、うまくいきません。2行目からデータが入っているのですが、3行目〜最終行までが並び替えされます。(2行目が動かない)
間違いがありましたら、教えて下さい。よろしくお願いします。

Dim i As Integer   '数字カウント
Dim tel As Integer  '総数

Sub Record2()
  bbb = ActiveWorkbook.Name
'最終セル
  Range("M1").Select       'A1→M1
  Selection.End(xlDown).Select
  encel1 = ActiveCell.Address
  cend = Mid(encel1, 4)

  Cells(10000, 13).End(xlUp).Select
  cend = ActiveCell.Row
  Range("M1").Selec
'並び替え
  If InStr(1, Cells(cend, 1), "その他", 1) > 0 Then
    cenda = cend - 1
  Else
    cenda = cend
  End If

  Range(Cells(2, 13), Cells(cenda, 14)).Select '1→13、2→14
  Selection.SortSpecial SortMethod:=xlSyllabary, Key1:=Range("N1"), _
    Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, _
    MatchCase:=False, Orientation:=xlTopToBottom   'B1→N1
  Range("M1").Select
'数値合計
   tel = 0
  For i = 2 To cend
    tel = tel + Cells(i, 14)   '2→14
  Next
    Cells(cend + 1, 14) = tel
'パ−セント
  For i = 2 To cend
    Cells(i, 3).NumberFormat = "0"
    If i = 2 Then
      Cells(i, 15) = Cells(i, 14) / tel * 100 '2→14、3→15
    Else
      Cells(i, 15) = Cells(i, 14) / tel * 100 + Cells(i - 1, 15)
    End If
  Next

End Sub

【15550】Re:並び替えがうまくいきません
回答  Asaki  - 04/6/29(火) 10:18 -

引用なし
パスワード
   こんにちは。

>Header:=xlGuess

Header:=xlNone
ではどうなりますか?

【15660】Re:並び替えがうまくいきません
質問  ぱな  - 04/7/1(木) 17:23 -

引用なし
パスワード
   すみません。
>Header:=xlNone
でもうまくいきませんでした。あと、"その他"という項目がありこの行は
動かないようにしたいのですが、わかる方いらっしゃいましたら教えて下さい。

【15661】Re:並び替えがうまくいきません
回答  Asaki  - 04/7/1(木) 17:41 -

引用なし
パスワード
   今気がついたんですが、
SortSpecial
を使っていらっしゃいますが、これは意図して使用しているのでしょうか?
Excelのバージョンは何ですか?

>"その他"という項目がありこの行は動かないようにしたい
あいている列を作業列にして、ソートしたときにうまくいくようなソートキーを設定しておいて、
この列をキーに並べ替えては?

【15667】Re:並び替えがうまくいきません
回答  [名前なし]  - 04/7/1(木) 21:40 -

引用なし
パスワード
   最初のコードを見ると、"その他"は常に最下部にしておきたいと
判断しましたが、そうなのであれば以下の手順でいいんじゃないかと。

1."その他"の件数を変数に保存
2."その他"の件数を-1にする
3.件数をキーにして降順で並べ替え("その他"の行も含む)
4."その他"の件数を変数の値に戻す

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