- 締切済み
ソートした文字を別セルに表示する
Excel2003にて Excelで作成したリストで オートフィルタでソートを掛けたとき ある文言の行のみ表示されます。 そのとき、選択したソートキーを全く別のセルに表示することは可能でしょうか? たとえば、 A10~H50までの範囲で、B9の値についてソートを掛けたとします。 そのときのソートキーをA5に表示する。 というのは可能でしょうか? もしくは、 A5で選択した文言でA10~H50をソートする。 というのはVBAでプログラム作成可能なのでしょうか? 数式もしくはプログラムにお心あたりの有る方、回答お願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
これは両方とも無理でしょう。 >オートフィルタでソートを掛けたとき >A10~H50までの範囲で、B9の値についてソートを掛けたとします。 そのときのソートキーをA5に表示する。 の意味がわからないが。 ーー VBAの方で言いますと (下記は列見出し文字列を指定し、その列でソートならできるということ) 質問の通りそのままはできないと思う。 >たとえば、 A10~H50までの範囲で、B9の値についてソートを掛けたとします。 そのときのソートキーをA5に表示する。 というのは可能でしょうか? のバリエーションです。 (B9が住所なのか年齢なのかは人間が知っているか、見出しが年齢だから年齢でソートしたというだけで、コンピュターは人間が指定した列でソートするだけです。その中身内容を割り出すのは、人間がそう仕組むからできるだけです。) 並べ替えの操作をして「マクロの記録」をとると判りますが Range("A1:S60").Sort Key1:=Range("Q1"),・・ と、列(他の例では行もあるが)を指定するようになっています。 Q1という1つのセルを表した表現ではありますが、その中から列情報を取り出してエクセルは使っています。 Q1のセル内容とは関係がありません。 例えばQ1セルに、「住所」という文字列が入っていて、Q1を指定したら、「住所」という「見出しのある列」でソートしたければ、「住所」という見出しのある列をプログラムで割り出さないとなりません。 例えば 氏名 住所 電話 年齢 山田 東京都 03- 34 佐藤 大阪府 06- 24 鈴木 福岡県 09- 56 H1に「住所」(見出しと完全一致した文字列で住所と)と入れる ーー Sub test01() x = Application.WorksheetFunction.Match(Range("H1"), Range("A1:D1"), 0) MsgBox x Range("A1:D60").Sort Key1:=Cells(1, x), Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin, DataOption1:=xlSortNormal End Sub 結果 氏名 住所 電話 年齢 佐藤 大阪府 06- 24 山田 東京都 03- 34 鈴木 福岡県 09- 56 見出し住所列でソートできた。
- kawajisan
- ベストアンサー率30% (53/171)
アイディア A案:フィルターしたデータをコピーし貼り付ける。 B案:VBA B案はマクロの記録で、A案を実行する。
お礼
アイディアありがとうございます。 No.1の方の参照URLを元に解決しました。
- mitarashi
- ベストアンサー率59% (574/965)
ソートという言葉を誤用されているのではないでしょうか。 参考URLの様な事をされたいのだと受け取りましたが、いかがですか。 外していたらすみません。
お礼
確かにソートを誤用していました。 失礼しました。 参考URLの添付ありがとうございます。 早速試してみます。
お礼
回答ありがとうございます。 No.1の方の参照URLを元に解決します。