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

Microsoft Excelでの、ソートについてご教授下さい。

 例えば、蔵書リストを作成した場合、A列に著者名、B列に書名、C列に価格と入力していくとします。
このとき、C列を対象としてソートすると、そのC列は昇順なり降順なりで価格順としてソートされますが、A列B列のデータとC列のデータが食い違ってしまいます。

 これを、エクスプローラのファイル一覧のように、A列の著者名でソートすると、それをB列C列にも反映させ、蔵書リストを著者順にも書名順にも価格順にも一行一冊づつ並べ替えるにはどうしたらよいのでしょうか。

  なんとかうまく説明したいのですが、稚拙極まる質問の表現で大変恥ずかしく思います。
どなたか質問の内容をお酌み取り頂き、教えて頂いたら幸甚に存じます。

 また、既出質問、あるいは各種マニュアルを精査すればこの方法が記載されてる事と思います。
それらを横着し、皆様の知識と善意に安直に頼る姿勢をお許し願いたいと存じます。

A 回答 (3件)

ANo.#2の訂正&補足です。



まずは訂正から。

>並べ替えが実行されたところで、『マクロツールバー』のストップボタン"■"をクリックします。

選択範囲を解除するために、並べ替えが実行された後、適当なセルを1つ選択してから、ストップボタン"■"をクリックしてください。(選択されたままでも、かまわないと言えばかまわないのですが・・・)

以下、補足です。

『マクロ』を含む『ブック』を開いて『マクロ』を実行するためには、『ブック』を開く前に、『ツール』⇒『マクロ』⇒『セキュリティ』⇒『セキュリティレベル』タブで、セキュリティレベルを『中』または『低』に設定しておく必要があります。
『中』に設定すると、『ブック』を開く時に『マクロを無効にするか、有効にするか』の問い合わせメッセージが表示されますから、『マクロを有効にする』をクリックしてください。
『低』に設定すると、無警告で『有効』になってしまい、『マクロ』を使ったコンピュータウィルスに対し、脆弱になってしまいますから、注意してください。

また、『新しいマクロの記録』で、範囲選択の際に、スクロールバーの"▼"等をクリックして、画面をスクロールさせた時には、"Visual Basic Editor"で『マクロ』を編集した時に、範囲選択を意味する

Range("A2:C6").Select

の前後に、キー操作を意味する

ActiveWindow.SmallScroll Down:=24 (←"▼"をクリックして、24行スクロールした時)

ActiveWindow.LargeScroll Down:=1 (←スクロールバーの薄い色の部分を1クリックして1画面スクロールした時)

Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select (←[Shift]+[Ctrl]+[End]で入力範囲の最終行までを一気に選択した時)

等の記述が入ることがありますが、並べ替えに必要な記述はANo.#2の部分だけなので、削除してしまってもかまいません。(記述が残っていても、べつにかまいませんが・・・)
    • good
    • 0
この回答へのお礼

deadline様、重ねてのご回答、心よりお礼申し上げます。また、お礼の御挨拶が遅れた事、お詫び申し上げます。ご丁寧なご教授通り、色々とエクセルをいじってみました。なにぶんエクセルの基本操作さえままならない未熟者ゆえ、マクロを開くのも初めてで、ちょっと困惑もいたしましたがdeadline様の詳しいご解説のおかげで、なんとか思い通りの事ができました。それと共に、マクロの便利さにも驚きました。これを機にマクロの勉強もしてみたいと思い始めた次第です。この度は本当にありがとうございました。大変助かりました。

お礼日時:2003/03/23 19:30

>エクスプローラのように列のボタンクリック一つで行のソートができる方法はありますでしょうか?



列のボタンクリックは列全体を選択する意味があるので、列のボタンクリック1つでというのは無理かと思いますが、キー操作を『マクロ』に記録し、記録した『マクロ』の実行を『ツールバー』の『ボタン』に登録すれば、その『ボタン』1クリックでの並べ替えが可能です。([Ctrl]+アルファベット1文字または『ツール』⇒『マクロ』⇒『マクロ』⇒『実行するマクロの選択』でも可)

まずは、キー操作をマクロに記録する方法から。

『ツール』⇒『マクロ』⇒『新しいマクロの記録』をクリックすると、『マクロの記録』というダイアログが表示されますから、『マクロ名』の欄に『著者名による並べ替え』とか、わかりやすい名前を付け、その下の『ショートカットキー』のCtrl+□の欄にアルファベット1文字を入れます。(入力した文字が大文字だと、"Ctrl+□"の表示が"Ctrl+Shift+□"に変わります。)
[OK]をクリックすると、『マクロツールバー』という小さなツールバーが出てきます。(ストップボタン"■"と
ワークシートを意味する絵柄のアイコンが表示されています。)『マクロツールバー』が邪魔な所へ出てきたら、邪魔でない所へちょっと退けて置きます。(この退ける操作は記録されません。)

A2~C6を選択し、『データ』⇒『並べ替え』・・・・という一連の並べ替えの操作を行い、並べ替えが実行されたところで、『マクロツールバー』のストップボタン"■"をクリックします。(ストップボタン"■"をクリックするのを忘れると、とんでもないキー操作まで記録されてしまいます。)

A列でソートするマクロ、B列でソートするマクロ、C列でソートするマクロ、それぞれを別々の名前で作成します。(この段階で、"Ctrl+□"での並べ替えが可能なはずですから、それぞれテストしてみると良いかと)

次に、『ツールバー』にマクロを実行するための『ボタン』を登録します。(↓では、新しく『ユーザー設定ツールバー』を作成していますが、『標準』のツールバーに標準の並べ替えのボタン("AZ↓"、"ZA↓")があるので、その横に置いても良いかと)

『ツール』⇒『ユーザー設定』⇒『ツールバー』タブの『新規作成』をクリックすると、『新しいツールバー』というダイアログが出てきますから、『ツールバー名』の下の『ユーザー設定 1』のところを適当な名前に変更し、[OK]をクリックします。(既にある『標準』とか『書式』といった名前には変更できませんから、『ユーザー設定』のままでも良いかと)
小さなツールバー(↑で付けた名前の最初の1~2文字が表示されています)が出てきますから、『標準』等のツールバーがある所まで、ドラッグ&ドロップします。
『ユーザー設定』⇒『コマンド』タブをクリックし、『分類』一覧から『マクロ』を選択します。
右側に『ユーザー設定ボタン』(黄色の顔に目と口のマーク)のというのがありますから、それを先程の小さなツールバーの上まで、ドラッグ&ドロップします。(『標準』ツールバーに置きたい時には、『標準』ツールバーの置きたい位置にドラッグ&ドロップします。)
『コマンド』タブの『選択したボタンの編集』をクリックし、一番下の『マクロの登録』をクリックし、記録済みのマクロの一覧の中から、そのボタンに登録したいマクロを選択します。
『ボタン』のアイコンの図柄を変更したい時には、『選択したボタンの編集』⇒『ボタンイメージの変更』をクリックし、一覧の中から選択するか、『選択したボタンの編集』⇒『ボタンイメージの編集』で自分の好きなイメージに変更します。(並べ替え用には、『ボタンイメージの変更』の一覧に"↓"の図柄がありますから、"↓"を選択して、『ボタンイメージの編集』で少し下に移動、その上に"A"とか"B"とかを書き加えると良いかと)
同じ操作を、A列でのソート用、B列でのソート用、C列でのソート用と、3つのボタンについて行い、『閉じる』をクリックして終了です。

一旦、ツールバーに置いたボタンを移動または削除したり、改めて別のマクロを割り当てたりしたい時には、『ツール』⇒『ユーザー設定』で『ユーザー設定』ダイアログを表示した状態で、そのボタンをドラッグ&ドロップすれば移動が出来ます。右クリックすると、『選択したボタンの編集』と同じメニューが表示され、削除やマクロの登録が出来ます。

また、データを追加したりして選択範囲を広げたい時などには、『ツール』⇒『マクロ』⇒『マクロ』⇒『編集』をクリックすると、『Visual Basic Editor』で記録済みのマクロの編集が出来ます。

Sub 著者名による並べ替え()
'
' 著者名による並べ替え Macro
' マクロ記録日 : 2003/3/19 ユーザー名 : ○○○○○
'
' Keyboard Shortcut: Ctrl+a
'
Range("A2:C6").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin
Range("A2").Select
End Sub

1つのマクロは"Sub"で始まり、"End Sub"で終わります。その下の『'』で始まる行は注釈行です。
選択した範囲は、"Range("A2:C6").Select"の"A2:C6"の部分ですから、ここを"A2:C20"とかに書き換えて、"Visual Basic Editor"を終了すれば、選択範囲が変更されたマクロでの並べ替えができるようになります。
なお、"End Sub"の前の"Range("A2").Select"は、ストップボタンを押す前に、選択範囲を解除するために、セルA2を選択した時のキー操作が記録されたものです。
    • good
    • 0

並べ替えたいデータが入力されているA列一番上の行~C列一番下の行全体を選択し、



『データ』⇒『並べ替え』⇒『最優先されるキー』にC列を選択して並べ替えれば、A列~C列が連動して並べ替えられます。

なお、並べ替えの範囲の指定は、下の例の場合、
A2~C6を選択して、『範囲の先頭行』の指定で『○データ』にチェックを入れる。
または、A1~C6を選択して、『範囲の先頭行』の指定で『○タイトル行』にチェックを入れる。
どちらでも、並べ替えられる範囲はA2~C6になります。
 A   B   C
1 著者名 書名 価格
2 ○   ○   ○
3 ○   ○   ○
4 ○   ○   ○
5 ○   ○   ○
6 ○   ○   ○

この回答への補足

deadline様、早々かつご丁寧なご回答、誠にありがたく存じます。

 教えて頂いたとおり操作してみたところ、私の希望通りの結果になりました。大変助かりました。お礼申し上げます。

 重ねて甘えさせて頂きたいのですが、教えて頂いた手順の他に、エクスプローラのように列のボタンクリック一つで行のソートができる方法はありますでしょうか?それには他に適したソフトがあるのでしょうか?

 もしご存じでしたらご教授下さい。

補足日時:2003/03/18 23:42
    • good
    • 0

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