デビッドは、生徒が作曲で使用しなければならない一連の約20の単語とフレーズを生徒に割り当てる教師です。各単語またはフレーズは、少なくとも1回使用する必要があります。生徒は、単語やフレーズの1つを使用するたびに、1ポイントを獲得しますが、重複する場合は追加のポイントはありません。 Davidは、おそらく各単語やフレーズを検索し、それらの使用状況のある種の記録を作成するマクロを使用して、作業にマークを付ける簡単な方法を探しています。デイブの望みは、Wordが検索とカウントを実行して、構成の品質の評価にエネルギーを集中できるようにすることです。

特定の単語またはフレーズの出現回数を手動で把握したい場合は、Wordの検索機能を使用できます。

。 Ctrl + Fを押します。 Wordは、[検索と置換]ダイアログボックスの[検索]タブを表示します。

。 [検索する文字列]ボックスに、検索する単語またはフレーズを入力します。

。利用可能な場合は、[その他]ボタンをクリックします。

。 1つの単語を検索する場合は、[単語全体のみを検索]チェックボックスをクリックします。

。 [見つかったすべてのアイテムを強調表示する]チェックボックスをクリックします。

。 [すべて検索]をクリックします。

Wordは、ダイアログボックスに、単語またはフレーズの出現回数を表示します。このテクニックは便利ですが、35の異なる生徒の作文で20の単語やフレーズを繰り返す必要がある場合、その魅力の一部が失われます。実際、マクロはより実用的なアプローチです。

[検索と置換]ダイアログボックスに表示されるオカレンスの数にVBAからアクセスできると非常に便利です。私が判断できた限り、この値にはアクセスできません。つまり、マクロ自体で繰り返し検索とカウントを行う必要があります。これを行う方法の良い例の1つは、マイクロソフトサポート技術情報にあります:

http://support.microsoft.com/kb/240157

このページのコードは、一連の単語やフレーズを検索してすべての結果を一度に表示するように、比較的簡単に変更できます。

もう1つのかなりユニークなアプローチは、生徒の作文に関する仮定を逆にすることです。各単語またはフレーズを使用すると仮定します(20の単語およびフレーズがある場合はスコア20から始まります)

いずれかを使用しない場合にのみポイントを減算します。

Sub ScoreCard()

Dim iScore As Integer     Dim iTopScore As Integer     Dim WordList As Variant     Dim i As Integer     Dim sUnused As String

' Enter the words or phrases in the array below;     ' each word or phrase in quotation marks and     ' separated by commas     WordList = Array("Mr.", "jelly", "wince", _       "proper", "fix", "compound", "high and dry")



' Counts the number of words in the array     iTopScore = CInt(UBound(WordList)) + 1     iScore = iTopScore

' Counts the number of "misses"

sUnused = ""

For i = 1 To iTopScore         With Selection.Find             .Forward = True             .Wrap = wdFindContinue             .Format = False             .MatchCase = False             .MatchAllWordForms = False             .MatchWholeWord = True             .Execute FindText:=WordList(i - 1)

End With         If Selection.Find.Found = False Then            iScore = iScore - 1            sUnused = sUnused & vbCrLf & WordList(i - 1)

End If     Next i

' Displays the score     If iScore = iTopScore Then         sUnused = "All words and phrases were used."

Else         sUnused = "The following words and phrases" & _           " were not used:" & sUnused     End If     sUnused = vbCrLf & vbCrLf & sUnused     MsgBox Prompt:="The score is " & iScore & _       " of " & iTopScore & sUnused, Title:="What's the Score?"

End Sub

マクロには、コンポジションのスコアが表示され、コンポジションで使用されなかった単語やフレーズも表示されます。

注:

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

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

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

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(333)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ:

link:/ wordribbon-Checking_for_Words_and_Phrases [単語とフレーズのチェック]