全角と半角、ひらがなとカタカナの変換 StrConv [C#, VB]

C#で全角文字と半角文字の変換と、ひらがなとカタカナの変換方法について紹介します。
C#には全角と半角、ひらがなとカタカナを変換するクラス、メソッドは用意されていませんのでVisual Basicのアセンブリを使用して変換します。

Visual Basicのアセンブリを参照する

C#で全角と半角、ひらがなとカタカナの変換を行うために、Visual Basicのアセンブリを参照します。
ソリューション エクスプローラーでアセンブリを追加するプロジェクトのツリーノードを展開します。
展開すると表示されるツリーノードの「参照」を右クリックします。
コンテキストメニューが表示されるので「参照の追加」をクリックします。

プロジェクトの参照の追加をクリック

「参照マネージャー」ダイアログが表示されますので、左ペインの「アセンブリ」を選択(クリック)し、表示されるアセンブリの一覧から「Microsoft.VisualBasic」を選択(クリック)し「OK」ボタンをクリックします。

Microsoft.VisualBasicのアセンブリを選択して追加

アセンブリが参照されると「参照」ノード内に「Microsoft.VisualBasic」が追加されます。

追加されたMicrosoft.VisualBasicのアセンブリ

StringsクラスのStrConv静的メソッドで変換

全角と半角の変換、ひらがなとカタカナの変換にはMicrosoft.VisualBasic名前空間にあるStringsクラスのStrConv静的メソッドを使用します。
StrConv静的メソッドには第1引数に変換する文字列を指定し、第2引数に変換方法(変換する形式)を指定します。
変換方法にはMicrosoft.VisualBasic名前空間にあるVbStrConv列挙型のメンバー定数値を指定します。

半角を全角に、全角を半角に変換する

半角を全角に変換するには、VbStrConv列挙型のWideを指定します。
全角を半角に変換するには、VbStrConv列挙型のNarrowを指定します。

カタカナをひらがなに、ひらがなをカタカナに変換する

カタカナをひらがなに変換するには、VbStrConv列挙型のHiraganaを指定します。
ひらがなをカタカナに変換するには、VbStrConv列挙型のKatakanaを指定します。

VbStrConv列挙型のメンバー定数一覧

VbStrConv列挙型のメンバー定数一覧をまとめて掲載しておきます。

名前 説明
None 0 変換は行われません。
Uppercase 1 文字列内の小文字を大文字に変換します。 
Lowercase 2 文字列内の大文字を小文字に変換します。 
ProperCase 3 文字列内の各単語の最初の文字を大文字に変換します。 
Wide 4 文字列内の半角文字(横幅の狭い)を、全角文字(横幅の広い文字)に変換します。 アジアのロケールに適用されます。 
Narrow 8 文字列内の全角文字(横幅の広い文字)を、半角文字(横幅の狭い文字)に変換します。 アジアのロケールに適用されます。 
Katakana 16 文字列内のひらがな文字をカタカナ文字に変換します。 日本語ロケールのみに適用されます。 
Hiragana 32 文字列内のカタカナ文字をひらがな文字に変換します。 日本語ロケールのみに適用されます。 
SimplifiedChinese 256 文字列を簡体中国語に変換します。 
TraditionalChinese 512 文字列を繁体字中国語に変換します。 
LinguisticCasing 1024 大文字/小文字についてファイル システム規則に従った文字列を、言語規則に従った文字列に変換します。 

VbStrConv列挙型のメンバー定数には全角と半角、ひらがなとカタカナ以外の定数も用意されているので、StringsクラスのStrConv静的メソッドを使用して全角と半角、ひらがなとカタカナの他に、大文字と小文字の変換などもできます。

サンプルプログラム

サンプルとしてWindowsフォームアプリケーションを作成して、ひらがなとカタカナの変換、および全角と半角を変換するプログラムを作成します。

ユーザーインターフェース

以下のようなフォームを作成します。

StrConvメソッド変換サンプルフォームデザイン

フォームには

  • 変換前のテキストボックス
  • 変換方法を選択するコンボボックス
    (ドロップダウンリストボックス)
  • 変換を実行するボタン
  • 変換後のテキストボックス

を配置します。

ソースコード

プロジェクトの実行

プロジェクトを実行します。

全角に変換

「変換前」のテキストボックスに変換するテキストを入力します。
「変換方法」のコンボボックスで「Wide」を選択してボタンをクリックします。

StrConvメソッドで全角に変換

半角文字列が全角文字列に変換されました。

半角に変換

「変換前」のテキストボックスに変換するテキストを入力します。
「変換方法」のコンボボックスで「Narrow」を選択してボタンをクリックします。

StrConvメソッドで半角に変換

ひらがなに変換

「変換前」のテキストボックスに変換するテキストを入力します。
「変換方法」のコンボボックスで「Hiragana」を選択してボタンをクリックします。

StrConvメソッドでひらがなに変換

カタカナに変換

「変換前」のテキストボックスに変換するテキストを入力します。
「変換方法」のコンボボックスで「Katakana」を選択してボタンをクリックします。

StrConvメソッドでカタカナに変換