★Word/Excel (MS-OFFICE) 初心者スレッド Part39★at PCQA
★Word/Excel (MS-OFFICE) 初心者スレッド Part39★ - 暇つぶし2ch697:ひよこ名無しさん
11/10/15 10:11:11.94
>>694
そういうのは本来データベースで行うべきです。Access使ってください。

と言いたいところですが、この要望は結構多いので少し解説を。

Excelでは「行単位のデータ関係が崩れないようにソートする」というのは可能ですが
フィールドとレコードのように行や列単位で意味を持っているわけではなく、あくまで独立した単一セルの概念なので
「どんな操作をしても行単位のデータ関係が崩れないように設定する」ことは基本的に不可能です。
シートを保護すれば、データが崩れなくすることは出来ますが、行単位での並べ替えすら出来なくなります。

とりあえず「行単位のデータ関係が崩れないようにソートする」の実現法としては

①一手間増えるが「昇順並べ替え」「降順並べ替え」の一発ソートではなく「並べ替え(オプション設定可能)」を使う
  標準の並べ替え機能は、対象が選択範囲であり、更に一発ソート系はキーが選択範囲最左列固定なので
  手軽な代わりに融通が利かず、B列をキーにA列も含めてソートというのは出来ないが、「並べ替え(オプション設定可能)」なら
  ダイアログでキー列等を設定する手間は掛かるが、目的自体は完璧に達せられる

②2003以降に乗り換える
  オートフィルタのメニュー内に「昇順並べ替え」「降順並べ替え」があり、それらはオートフィルタを設定した列範囲内では
  行単位のデータを崩さずに一発ソートできる

③VBA使う
  ActiveSheet.UsedRange.Sort key1:=ActiveCell, Order1:=SortOrder
  で、アクティブセルの列をキーにして、行単位のデータを崩さずソート出来るので、これをツールボタンに登録して、
  標準の一発ソートの代わりにツールバーに出しておく
  Order1やHeader等のオプションは適宜指定するように

因みに、VBAとシート保護を使えば、「どんな操作をしても行単位のデータ関係が崩れないように設定する」と
「行単位のデータ関係が崩れないようにソートする」を一応両立できます。
初期状態でシート保護しておき、VBAでは「シート保護解除→行単位ソート→シート保護」を行います。
標準の並べ替え機能はシートの保護で殺しておき、VBAで自作した行単位ソートだけ、一時的な保護解除で使えるようにするわけです。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch