アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2003にて
Excelで作成したリストで
オートフィルタでソートを掛けたとき
ある文言の行のみ表示されます。
そのとき、選択したソートキーを全く別のセルに表示することは可能でしょうか?

たとえば、
A10~H50までの範囲で、B9の値についてソートを掛けたとします。
そのときのソートキーをA5に表示する。
というのは可能でしょうか?

もしくは、
A5で選択した文言でA10~H50をソートする。
というのはVBAでプログラム作成可能なのでしょうか?


数式もしくはプログラムにお心あたりの有る方、回答お願い致します。

A 回答 (3件)

ソートという言葉を誤用されているのではないでしょうか。


参考URLの様な事をされたいのだと受け取りましたが、いかがですか。
外していたらすみません。

参考URL:http://www11.plala.or.jp/koma_Excel/contents6/ma …
    • good
    • 0
この回答へのお礼

確かにソートを誤用していました。
失礼しました。

参考URLの添付ありがとうございます。
早速試してみます。

お礼日時:2007/12/20 17:53

これは両方とも無理でしょう。


>オートフィルタでソートを掛けたとき
>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
見出し住所列でソートできた。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

No.1の方の参照URLを元に解決します。

お礼日時:2007/12/20 17:55

アイディア



A案:フィルターしたデータをコピーし貼り付ける。
B案:VBA

B案はマクロの記録で、A案を実行する。
    • good
    • 0
この回答へのお礼

アイディアありがとうございます。

No.1の方の参照URLを元に解決しました。

お礼日時:2007/12/20 17:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!