2

私はインターネットを調べて、この問題に対するいくつかの可能な解決策を見つけましたが、ここでも質問したいと思いました。

目標は、ボタンをクリックして、シート全体のスペルチェックを行うことです。

ここにいくつかのコードがあります

Sub spellCheck()

Sheet1.Cells.CheckSpelling
End Sub

また、私はこれを見つけました:

Sub SpellCheck()
Dim Checkword As String, Result As Boolean
Checkword = Selection.Value
Result = Application.CheckSpelling(Checkword)
Selection.Offset(0, 1) = Result
End Sub

何か案は?どちらも私のために働いていません。ありがとう!

4

5 に答える 5

3

次のような方法でワークブック全体を確認できます。

Sub SpellCheck()

For Each sh In Worksheets
    Sheets(sh.Name).Cells.CheckSpelling
Next

End Sub

これにより、ブック全体の各シートが循環し、各シートでスペルチェックが実行されます。私がまだ理解できないのは、スペルチェッカーを実際にスペルミスの位置に移動させる方法です。したがって、上記では、スペルミスのリストを取得するだけで、それらを評価するコンテキストはありません。

于 2014-04-11T08:55:31.673 に答える
1

コードにタイプミスがあることに気づきました。

以下の作品:

Sub spellCheck()

Sheet1.Cells.CheckSpelling

End Sub

しかし、誰かがワークブック全体を実行する方法を知っているなら、私はそれに興味があります。ありがとう。

于 2012-08-21T14:50:46.870 に答える
1

このコードは、選択したセルで機能します。これは、セルでスペルが間違っている場合に強調表示されます

Dim Myrange As Range
Selection.SpecialCells(xlVisible).Select
For Each Myrange In Selection
    If Application.CheckSpelling(word:=Myrange.Value) = False Then
    Myrange.Font.Color = vbRed
    End If
Next
于 2014-04-11T09:52:05.480 に答える
0

これは、以前の回答のコード スニペットを使用して、スペルチェックに使用される領域を特定の地域に制限します。小さなプロジェクトで何かをする必要がありました。これにより、スペルチェッカーの完全な機能が提供され、コンテキストにエラーが表示されます。rowNumberは別の場所で計算されます。選択範囲は、特定のニーズに合わせてコード内の別の場所で完全に制御できます。これは、この投稿を検索する他の人に役立つかもしれないと考えました。

 With Sheets("Sheet1")
    slic = CStr(rowNumber)
    .Range("AL3:AN" & slic).Select   
    Application.CommandBars("Tools").Controls("Spelling...").Execute
End With

以前のポスターのおかげで、これで問題が解決しました。本当に感謝しています。

于 2014-05-04T02:07:45.793 に答える
0

次のコマンドを使用してツールバーのスペルチェッカーを呼び出すことができます。これにより、その時点で画面の更新が有効になっている限り、スペル ミスの位置に移動します。

Application.CommandBars("Tools").Controls("Spelling...").Execute

上記のループに埋め込まれたこのコマンドを使用して、ブック内のシートをループし、新しいシートごとにこのコマンドを呼び出すことができます。

キャップ

于 2014-04-11T09:07:52.180 に答える