Koenには、列Aに名前のリストがあるワークシートがあります。リスト内の名前ごとにワークシートを作成し、その名前に従ってワークシートに名前を付ける必要があります。 Koenは、これにはマクロが必要になると考えていますが、そのようなタスクを実行する方法がわかりません。

マクロを使用する場合、このタスクは比較的簡単に実行でき、実行できる方法はいくつもあります。簡単な方法の1つは、ワークシート名のリストを選択してから、次のマクロを実行することです。

Sub AddWorksheetsFromSelection()

Dim CurSheet As Worksheet     Dim Source As Range     Dim c As Range

Set CurSheet = ActiveSheet     Set Source = Selection.Cells     Application.ScreenUpdating = False

For Each c In Source         sName = Trim(c.Text)

If Len(sName) > 0 Then                 Worksheets.Add After:=Worksheets(Worksheets.Count)

ActiveSheet.Name = sName         End If     Next c

CurSheet.Activate     Application.ScreenUpdating = True End Sub

マクロは基本的に、選択した各セルを取得し、新しいワークシートを作成してから、セル内の内容に応じてそのワークシートの名前を変更します。

マクロは、特定のセルに実際に何かが含まれていることを確認します(セルに名前がない場合、ワークシートの名前を変更することはできません)が、それでもそれほど堅牢ではありません。ワークシート名のリストに他の欠陥があり、マクロの実行時にエラーが発生する可能性があります。たとえば、リストに重複が含まれている場合はどうなりますか?または、Excelで許可されていない名前が含まれていますか?これら(およびその他のエラー)が予想され、そのような状況を処理するためにコードが変更されました。

マクロを使用してワークシートを作成するのはすばやく簡単ですが、必ずしもマクロを使用する必要はないことに注意してください。実際、Excelのピボットテーブル機能を使用して、目的のワークシートを作成できます。この例では、目的のワークシート名がワークシートの列Aにあり、セルA1に列の見出し(「名前」や「ワークシート」など)が含まれていると仮定します。

あなたがしたいのは、これらの名前に基づいたピボットテーブルを作成することです。次の手順に従ってください:

。列から任意のワークシート名を選択します。

。リボンの[挿入]タブを表示します。

。リボンの左側にあるピボットテーブルツールをクリックします。 Excelは、ワークシート名の範囲がすでに指定された状態で、[ピボットテーブルの作成]ダイアログボックスを表示します。 (図1を参照)

。 [OK]をクリックします。 Excelはピボットテーブルを作成し、画面の右側に[ピボットテーブルフィールド]ペインを表示します。

。 [ピボットテーブルのフィールド]ペインで、ワークシートのリストに使用するフィールドの横にあるチェックボックスをクリックします。 (「名前」

または「ワークシート」のようなものである必要があります。)Excelはピボットテーブルを調整します。

。チェックしたフィールド名(「名前」または「ワークシート」)を「ピボットテーブルフィールド」ペインの「フィルター」領域にドラッグします。 (図2を参照)

。リボンの[分析]タブが表示されていることを確認します。 (ピボットテーブルを作成した後、デフォルトで表示されているはずです。)

。リボンの左側にあるピボットテーブルツールの下にある下向き矢印をクリックします。 Excelには、選択できるものがいくつか表示されます。

。 [オプション]選択肢の右側にある下向き矢印をクリックします。 ([オプション]の選択自体はクリックしないでください。ダイアログボックスが表示されます。下矢印をクリックするだけです。)

。 [レポートフィルターページの表示]オプションを選択します。 Excelは、[レポートフィルターページの表示]ダイアログボックスを表示します。

。 [OK]をクリックします。 Excelは、リスト内のワークシート名ごとにワークシートを作成します。

この時点で、新しいワークシートのそれぞれに小さなピボットテーブルが含まれていることを理解することが重要です。これらのピボットテーブルを削除するには、新しいワークシートの選択セットを作成して(最初のワークシートタブをクリックし、Shiftキーを押しながら最後のワークシートタブをクリック)、Deleteキーを押すことができると思うかもしれません。ただし、私のテストでは、これは機能しません。Excelでは、グループ編集モードでピボットテーブルに変更を加えることはできません。代わりに、各ワークシートを順番に表示し、ピボットテーブルを削除する必要があります。

これは大変な作業のように思えるかもしれませんが、これらすべてのワークシートを1回だけ作成する必要がある場合は、マクロを呼び出さなくても比較的簡単に作成できます。

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

このヒント(13463)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。