OfficeアプリでのGUI検索ダイアログの一致する動作はカスタマイズできません。しかし、私があなたの立場にあった場合、これが私が問題を解決する方法です:
まず、アクセントに依存しない検索を実行する.NETコードが必要になります。どちらの言語が一番好きかによって、VBとC#の両方のサンプルがあります。この中核となるのはCompareInfo.IndexOf
、CompareOptionsパラメータをに設定したメソッドを使用することCompareOptions.IgnoreNonSpace
です。これはアクセントに依存しない検索です。
次に、Officeアプリからこのコードを呼び出す必要があります。コードをプラグインする方法はアプリによって異なります。たとえば、ExcelとAccessからこれを行う方法を示すブログ投稿があります。
次に、これらの呼び出しを、検索と置換をシミュレートするコードとUIにラップする必要があります。これもアプリごとに異なります。たとえば、Excelでは、現在のワークシートのすべてのセルをループし、コードを使用して一致するものを探します。
最後に、そのコードをツールバーボタンまたは他の方法にマップして、コードを呼び出す必要があります。
とにかく、これがあなたが始めるのを助けるのに十分な情報であることを願っています。アクセントに依存しない一致を行うためのVBまたはC#のコア.NETコードは次のとおりです。
VB
Module Module1
Sub Main()
' returns: 3
Dim pos As Integer = FindIgnoreDiacritics("àcçëñt-énäblêd", "en")
End Sub
Function FindIgnoreDiacritics(ByVal lookIn As String, ByVal lookFor As String) As Integer
FindIgnoreDiacritics = System.Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(lookIn, lookFor, System.Globalization.CompareOptions.IgnoreNonSpace Or System.Globalization.CompareOptions.IgnoreCase)
End Function
End Module
C#
class Program
{
static void Main(string[] args)
{
// returns: 3
int pos = FindIgnoreDiacritics("àcçëñt-énäblêd", "en");
}
static int FindIgnoreDiacritics(string lookIn, string lookFor)
{
return System.Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(lookIn, lookFor,
System.Globalization.CompareOptions.IgnoreNonSpace | System.Globalization.CompareOptions.IgnoreCase);
}
}