マレーネは教師であり、単語検索が大好きな生徒がいます。彼女はそれらを作るのにかなり時間がかかると感じていますが、彼女がそれらを使うとき、学生はコース資料をはるかによく覚えているようです。 Marleneは、AからZまでのアルファベットの文字でセルの範囲をオートフィルする方法があるかどうか疑問に思いました。そうすれば、この機能を使用して、単語検索の四角を文字で埋めてから、それらの文字の一部を検索される実際の単語。

Excelのオートフィルツールには、日付や数値シーケンスなど、自動的に入力されるいくつかの標準シーケンスがあります。ただし、オートフィルの非常に強力な部分は、ツールが組み込みシーケンスと同じくらい簡単に使用するカスタムリストを作成できることです。カスタムリストを手動で作成するには、次の手順に従います。

。 [ツール]メニューから[オプション]を選択します。 Excelに[オプション]ダイアログボックスが表示されます。

。 [カスタムリスト]タブが選択されていることを確認してください。 (図1を参照)

。 [エントリのリスト]ボックスに、アルファベットの各文字を1行に1文字ずつ入力します。 (入力する各文字の後にEnterキーを押します。)

。 [追加]をクリックします。

これでカスタムリストが作成され、開いているダイアログボックスを閉じることができます。カスタムリストを使用するには、シーケンスを開始する1文字または2文字を入力し、それらのセルを選択し、オートフィルハンドルを使用して、入力するセルをいくつでもドラッグします。

ダイアログボックスに26文字を入力したくない場合に備えて、少し簡単なカスタムリストを作成する別の方法があります。代わりに、すでに26個のセルにアルファベットの文字がある場合は、それらのセルを選択して、次の手順に従います。

。 [ツール]メニューから[オプション]を選択します。 Excelに[オプション]ダイアログボックスが表示されます。

。 [カスタムリスト]タブが選択されていることを確認してください。選択したセルの範囲が[セルからリストをインポート]ボックスに表示されます。

。 [インポート]をクリックします。

これで、ダイアログボックスを閉じて、必要に応じてカスタムリストを使用できます。

もちろん、カスタムリストを使用することには、特に単語検索の作成に関して1つの欠点があります。空白の正方形に追加される文字は常に予測可能な順序であるため、実際の単語を必要以上に簡単に見つけることができます。パズルをもう少しやりがいのあるものにするには、単語以外の正方形をランダムな文字で埋める方がよいでしょう。

ランダムな文字を取得する簡単な方法の1つは、次の式を使用することです。

=CHAR(RANDBETWEEN(65,90))

この式が機能するのは、RANDBETWEEN関数が、指定された2つの境界値の間のランダムな数値を返すためです。この場合、65から90までの値を返します。これは、それぞれ文字AとZのASCII値です。次に、CHAR関数を使用して、このランダムな数値を実際の文字に変換します。

RANDBETWEEN関数は、多くの人がExcelにインストールしているアドインであるAnalysisToolPakの一部です。 ([ツール]、[アドイン]の順に選択して、インストールされているかどうかを確認します。)アドインを有効にしたくない場合は、次のようなより基本的な式を使用できます。

=CHAR((65+(90-65)*RAND()))

CHAR関数は見覚えがあるはずです。唯一の違いは、RANDBETWEENの代わりにRAND関数を使用してランダム値を生成することです。

単語検索パズルをたくさん作成する場合は、マクロを使用して、セルの範囲をアルファベットのランダムな文字で埋めることができます。

このようなマクロを組み合わせる方法はいくつもあります。以下は特に柔軟なものです。事前に選択された範囲(マクロの実行時に選択された範囲)で機能するか、マクロの実行後に範囲を選択できます。

Sub AlphaFill()

Dim Cell, CellChars     Dim Default, Prompt, Title     Dim rangeSelected As Range     Dim UpperCase As Boolean

Title = "AlphaFill Cell Selection"

Default = Selection.Address     Prompt = vbCrLf _       & "Use mouse in conjunction with " _       & "SHIFT and CTRL keys to" & vbCrLf _       & "click and drag or type in name(s) " _       & "of cell(s) to AlphaFill" & vbCrLf & vbCrLf _       & "Currently selected cell(s): "

& Selection.Address

On Error Resume Next     Set rangeSelected = InputBox(Prompt, Title, _       Default, Type:=8)

If rangeSelected Is Nothing Then Exit Sub

UpperCase = True     Randomize     For Each Cell In rangeSelected         CellChars = Chr(64 + Int((Rnd * 26) + 1))

If Not UpperCase Then CellChars = LCase(CellChars)

Cell.Value = CellChars     Next End Sub

記述されているマクロコードは、指定した範囲に大文字を挿入します。代わりに小文字を使用する場合は、UpperCase変数をTrueではなくFalseに設定するだけです。

注:

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

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

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