Excel VBA質問箱 IV

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

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


12819 / 13644 ツリー ←次へ | 前へ→

【8462】並び替えの方向について 黒蟻 03/10/17(金) 18:29 質問
【8463】Re:並び替えの方向について INA 03/10/17(金) 18:39 回答
【8464】Re:並び替えの方向について 黒蟻 03/10/17(金) 19:53 質問
【8465】Re:並び替えの方向について INA 03/10/17(金) 21:14 回答
【8466】Re:並び替えの方向について ichinose 03/10/17(金) 21:23 回答
【8467】Re:並び替えの方向について 黒蟻 03/10/17(金) 23:19 お礼
【8468】Re:並び替えの方向について INA 03/10/17(金) 23:29 回答
【8484】Re:並び替えの方向について りん 03/10/19(日) 16:31 発言

【8462】並び替えの方向について
質問  黒蟻  - 03/10/17(金) 18:29 -

引用なし
パスワード
   Sortメソッドの
Orientation 
をxlSortRowsにすると列単位になり
xlSortColumns にすると行単位になって
しまいます。
どこが変なのでしょうか。
ちなみに、プログラムは、

Range("B8").Sort Key1:=Range("B8"), Order1:=xlAscending, _
                  Header:=xlYes, MatchCase:=False, _
                  Orientation:=xlSortColumns

です。

【8463】Re:並び替えの方向について
回答  INA  - 03/10/17(金) 18:39 -

引用なし
パスワード
   >Orientation  をxlSortRowsにすると列単位になり
>xlSortColumns にすると行単位になってしまいます。
>どこが変なのでしょうか。
あっていますよ?
何が変なのですか?

【8464】Re:並び替えの方向について
質問  黒蟻  - 03/10/17(金) 19:53 -

引用なし
パスワード
   ▼INA さん:
>>Orientation  をxlSortRowsにすると列単位になり
>>xlSortColumns にすると行単位になってしまいます。
>>どこが変なのでしょうか。
>あっていますよ?
>何が変なのですか?

ヘルプを見ますと、

xlSortRows 既定値。行単位で並べ替えます。
xlSortColumns 列単位で並べ替えます。

となっています。

実際に使ってみますと、

xlSortColumns は規定値となり、行単位で上下方向にソートし
xlSortRows 列単位で左右方向にソートされます。

例えば、行をレコードとするデーターベースで
レコードの並べ替えをする場合、
Orientation := xlSortColumns
でよろしいのでしょうか。

【8465】Re:並び替えの方向について
回答  INA  - 03/10/17(金) 21:14 -

引用なし
パスワード
   ヘルプは和訳文だから表現が適切でない場合や、
誤記も沢山ありますので、使ってみて正しい方を選択すれば良いのでは?

【8466】Re:並び替えの方向について
回答  ichinose  - 03/10/17(金) 21:23 -

引用なし
パスワード
   ▼黒蟻 さん:
こんばんは。

>>>Orientation  をxlSortRowsにすると列単位になり
>>>xlSortColumns にすると行単位になってしまいます。
>>>どこが変なのでしょうか。
>>あっていますよ?
>>何が変なのですか?
>
>ヘルプを見ますと、
>
>xlSortRows 既定値。行単位で並べ替えます。
>xlSortColumns 列単位で並べ替えます。
>
>となっています。
>
>実際に使ってみますと、
>
>xlSortColumns は規定値となり、行単位で上下方向にソートし
>xlSortRows 列単位で左右方向にソートされます。
>
>例えば、行をレコードとするデーターベースで
>レコードの並べ替えをする場合、
>Orientation := xlSortColumns
>でよろしいのでしょうか。

本当ですね。helpのミスなのかな?
実際にマクロの記録を使ってソートさせてみて下さい。
行方向(上から下への並び替え)は、

'==============================================
  Range("A1").Select
  Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
    :=xlPinYin
というように
xlTopToBottom定数が使われていますし、
列方向(左から右に並び替え)の場合は、

  Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, SortMethod _
    :=xlPinYin

で、xlLeftToRightが使用されいます。
こっちの方が意味ピッタシですね。

ちなみに

xlTopToBottom=xlSortColumns=1

xlLeftToRight=xlSortRows=2

となっています。

本当は、Columns(列)で列(縦)方向に並び替え、
Rows(行)で行(横)に並び替え
という意味なんでしょうね!!

【8467】Re:並び替えの方向について
お礼  黒蟻  - 03/10/17(金) 23:19 -

引用なし
パスワード
   すっきりしました。
xlTopToBottom が分かりやすくていいですね。
どうもありがとうございました

【8468】Re:並び替えの方向について
回答  INA  - 03/10/17(金) 23:29 -

引用なし
パスワード
   >本当は、Columns(列)で列(縦)方向に並び替え、
>Rows(行)で行(横)に並び替え
>という意味なんでしょうね!!

そう思います。
行と列に対する説明では、処理する場所なのか処理する方向なのかで
縦横の解釈が違うと逆になってしまいますからね。
きっと原文(英文)を見れば、はっきりするでしょうね。
 意外と原文も間違えてたりして・・(笑)

【8484】Re:並び替えの方向について
発言  りん E-MAIL  - 03/10/19(日) 16:31 -

引用なし
パスワード
   みなさん、こんにちわ。

>>本当は、Columns(列)で列(縦)方向に並び替え、
>>Rows(行)で行(横)に並び替え
>>という意味なんでしょうね!!
>きっと原文(英文)を見れば、はっきりするでしょうね。
> 意外と原文も間違えてたりして・・(笑)

原文?はこんなのでした
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wrcore/html/wrgrfexcelrangeobject.asp

Orientation for the sort.だそうえす。

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