ワークシートを保護すると、Excelはユーザーがワークシートのデータに対してさまざまなタスクを実行するのを防ぎます。ユーザーが実行できなくなったことの1つは、データを並べ替えることです。ユーザーがデータを並べ替えることができるようにし、シートを保護したい場合はどうなりますか?

Excel2002またはExcel2003を使用している場合、答えは非常に簡単です。

これらのバージョンのExcelでは、保護されたワークシートでユーザーが実行できることと実行できないことを指定できます。 [ツール]を選択した場合|保護|シートの保護、Excelは[シートの保護]ダイアログボックスを表示します。ダイアログボックスの下部には、チェックボックスの長いリストがあります。あなたがする必要があるのは、ユーザーがワークシートで何ができるべきかを選択することです。オプションの1つ(少し下にスクロールする必要があります)は並べ替えです。このオプションを選択すると、ユーザーは保護されたデータを並べ替えることができます。

古いバージョンのExcelを使用している場合、解決策は、ワークシートの保護を解除し、データを並べ替えてから、ワークシートを再度保護するマクロを作成することです。以下は簡単な例です:

Sub Sorting()

ActiveSheet.Unprotect     Range("A1:D100").Sort Key1:=Range("A1"), _       Order1:=xlAscending, Header:=xlGuess, _       OrderCustom:=1, MatchCase:=False, _       Orientation:=xlTopToBottom     ActiveSheet.Protect End Sub

この例では、列Aの内容に基づいて範囲A1:D100のデータを並べ替えます。マクロはこのアプローチの背後にある一般的な概念を示していますが、データとユーザーのニーズを反映するように変更する必要があります。

マクロルートを使用する場合は、ツールバーボタンまたはメニューコマンドのいずれかにマクロを割り当てる必要があります。そうしないと、保護されたドキュメントでマクロメニューが無効になるため、ユーザーはそれを使用できなくなります。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2458)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excelribbon-Sorting_Data_on_Protected_Worksheets [保護されたワークシートへのデータの並べ替え]