Note: The other languages of the website are Google-translated. Back to English

 Excelで例外を除いてテキスト文字列を適切な大文字と小文字に変換する方法は?

Excelでは、適切な関数を適用してテキスト文字列を適切な大文字と小文字に簡単に変換できますが、次のスクリーンショットに示すように、テキスト文字列を適切な大文字と小文字に変換するときに特定の単語を除外する必要がある場合があります。 この記事では、Excelでこのジョブを解決するための簡単なコツについて説明します。

数式を使用して、例外を除いてテキスト文字列を適切な大文字と小文字に変換します

VBAコードを使用して、例外を除いてテキスト文字列を適切な大文字と小文字に変換します


数式を使用して、例外を除いてテキスト文字列を適切な大文字と小文字に変換します

次の式は、このタスクをすばやく処理するのに役立つ可能性があります。次のようにしてください。

次の式を入力します。

= UPPER(LEFT(A2))&MID(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( ""&PROPER(A2)& ""、 "Of"、 "of")、 "A"、 "a")、 "Is "、" is ")、" Usa "、" USA "))、2、LEN(A2)) 結果を取得するセルに入力し、塗りつぶしハンドルをドラッグしてこの数式を入力すると、テキスト文字列は適切な場合に変換されますが、特定の例外があります。スクリーンショットを参照してください。

注意:上記の式では、 A2 変換したいセルです、 「of」、「A」、「Is」、「Usa」 変換後の通常の固有名詞です、 「of」、「a」、「is」、「USA」 適切なケースから除外したい単語です。 必要に応じて変更したり、SUBSTITUTE機能で他の単語を追加したりできます。


VBAコードを使用して、例外を除いてテキスト文字列を適切な大文字と小文字に変換します

上記の式を理解して必要に応じて変更するのがやや難しい場合は、ここでVBAコードを適用してこのタスクを完了することもできます。 以下の手順をXNUMXつずつ行ってください。

1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュールウィンドウ.

VBAコード:例外を除いて、テキスト文字列を適切な大文字と小文字に変換します。

Sub CellsValueChange()
'Updateby Extendoffice
    Dim xSRg As Range
    Dim xDRg As Range
    Dim xPRg As Range
    Dim xSRgArea As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim I As Long
    Dim K As Long
    Dim KK As Long
    On Error Resume Next
    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set xSRg = Application.InputBox("Original cells:", "KuTools For Excel", xAddress, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    Set xDRg = Application.InputBox("Output cells:", "KuTools For Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    Set xPRg = Application.InputBox("Cells to exclude:", "KuTools For Excel", , , , , , 8)
    If xPRg Is Nothing Then Exit Sub
    Set xDRg = xDRg(1)
    For I = 1 To xSRg.Areas.Count
        Set xSRgArea = xSRg.Areas.Item(I)
        For K = 1 To xSRgArea.Count
            xRgVal = xSRgArea(K).Value
            If Not IsNumeric(xRgVal) Then
                xRgVal = CorrectCase(xRgVal, xPRg)
                xDRg.Offset(KK).Value = xRgVal
            End If
            KK = KK + 1
        Next
    Next
End Sub
Function CorrectCase(ByVal xRgVal As String, ByVal xPRg As Range) As String
    Dim xArrWords As Variant
    Dim I As Integer
    Dim xPointer As Integer
    Dim xVal As String
    xPointer = 1
    xVal = xRgVal
    xArrWords = WordsOf(xRgVal)
    For I = 0 To UBound(xArrWords)
        xPointer = InStr(xPointer, " " & xVal, " " & xArrWords(I))
        Debug.Print xPointer
        Mid(xVal, xPointer) = CorrectCaseOneWord(CStr(xArrWords(I)), xPRg)
    Next I
    CorrectCase = xVal
End Function
Function WordsOf(xRgVal As String) As Variant
    Dim xDelimiters As Variant
    Dim xArrRtn As Variant
    xDelimiters = Array(",", ".", ";", ":", Chr(34), vbCr, vbLf)
    For Each xEachDelimiter In xDelimiters
        xRgVal = Application.WorksheetFunction.Substitute(xRgVal, xEachDelimiter, " ")
    Next xEachDelimiter
    xArrRtn = Split(Trim(xRgVal), " ")
    WordsOf = xArrRtn
End Function
Function CorrectCaseOneWord(xArrWord As String, xERg As Range) As String
    With xERg
        If IsError(Application.Match(xArrWord, .Cells, 0)) Then
            CorrectCaseOneWord = Application.Proper(xArrWord)
        Else
            CorrectCaseOneWord = Application.VLookup(xArrWord, .Cells, 1, 0)
        End If
    End With
End Function

3。 次に、 F5 このコードを実行するためのキーを押すと、変換する元のセルを選択するように促すプロンプトボックスが表示されます。スクリーンショットを参照してください。

4。 そして、 OK、ポップアウトされたボックスで結果を出力するセルを選択します。スクリーンショットを参照してください。

5。 クリックしてください OK、およびポップアップダイアログボックスで、除外するテキストを選択します。スクリーンショットを参照してください。

6。 そして、 OK ダイアログを終了するには、すべてのテキスト文字列が適切な大文字と小文字に変換されていますが、指定された単語は除外されています。スクリーンショットを参照してください。


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (1)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
マクロだけがCAPSの刺し傷の一部を除外し、セル全体を例外リストから除外した場合、これは驚くべきことです。
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護