現在オフラインです。再接続するためにインターネットの接続を待っています

[HOWTO] Visual Basic のフォームで UNICODE 文字列の読み込みと表示を行う方法

この記事は、以前は次の ID で公開されていました: JP193540
概要
この資料は、Unicode テキスト ファイルから Unicode 文字列を読み込んで、Visual Basic フォーム上で表示する方法を示したものです。
詳細
Visual Basic は、内部的には 2 バイトの Unicode 規格に基づいています。しかし Visual Basic 以外では、現在多くが 1 バイトの ANSI モデルを採用しています。こうした理由から、Visual Basic にはフォーム コントロールが 2 セット用意されており、ANSI 用のセットがデフォルト コントロールとして使用されます。フォーム コントロールの ANSI 用セットでは、渡された文字列が内部の Unicode 表現から ANSI 表現に変換されるため、UNICODE 文字列は正しく表示されません。UNICODE 文字列を Visual Basic フォームに表示できるようにするには、UNICODE (Forms 2.0) コントロールを使用する必要があります。以下の例は、Forms 2.0 コントロールを使って、Unicode テキスト ファイルから読み込まれた UNICODE 文字列を表示する方法を示したものです。この動作には UNICODE 言語パッケージ サポートが必要になるため、現在のところ、Windows NT でしかサポートされません。

: この資料で使用する Forms 2.0 のコントロールは、Visual Basic のフォームで使用するために設計されたものではなく、この環境で正式にはテストされていません。この資料は、Visual Basic の標準コントロールに対する制限を回避するため、こうした非常に限定的な状況に限って Forms 2.0 の使い方を示したものです。Visual Basic フォームでこれらのコントロールのほかの機能を使用することは、サポートされません。

さらに、Forms 2.0 は Microsoft Office の一部であり、再配布可能なコンポーネントではありません。したがって、アプリケーションと一緒に Forms 2.0 (fm20.dll) を配布することはできません。あらかじめ、使用するコンピュータにインストールしておく必要があります。まだ fm20.dll を持っていないエンド ユーザーは、次のサイトから Microsoft ActiveX Control Pad をダウンロードすることができます。この中に fm20.dll が含まれています。
fm20.dll の配布の関連情報については、以下の「サポート技術情報」 (Microsoft Knowledge Base) を参照してください。
224305[MOD] FM20.DLL の使用と再配布について

ステップバイステップ ガイドによるサンプルのビルド

  1. 中国語版パッケージを Windows NT コンピュータにインストールします。インストール手順については、下記の「関連情報」を参照してください。この手順の中で、MingLiu フォントが自動的にインストールされます。このほかの UNICODE 言語サポートが必要な場合は、別の言語パックをインストールすることもできます。
  2. 標準 EXE プロジェクトを作成します。デフォルトで Form1 が作成されます。
  3. [プロジェクト] メニューの [コンポーネント] をクリックし、[Microsoft Forms 2.0 Object Library] をオンにします。ツールボックスにいくつかのコントロールが新たに加わります。この中に、UNICODE 版のテキスト ボックス、ラベルなどが含まれています。
  4. Forms 2.0 の TextBox を Form1 に追加し、デフォルト名 TextBox1 のままにします。このテキスト ボックスのフォントを [MingLiu] に設定します。
  5. 2 つの [CommandButton] を Form1 に追加します。
  6. Form1 のコード ウィンドウに次のコードを追加します。
          Private Sub Command1_Click()        ' 中国語の文字 Dan1 とアルファベットの D を含む        ' Unicode テキスト ファイルを作成します。        Dim a(0 To 5) As Byte        a(0) = &HFF        a(1) = &HFE        a(2) = &H39        a(3) = &H4E        a(4) = &H44        a(5) = &H0        Open "unicode.txt" For Binary As #1        Put #1, , a        Close #1      End Sub      Private Sub Command2_Click()        Dim txtline As String        ' ファイルのパスは適宜変更する必要があります        Open "unicode.txt" For Binary As #1        txtline = InputB(2, #1)  ' 常に FF FE なのでスキップ        txtline = InputB(4, #1)        Close #1        TextBox1.Text = txtline  ' 文字列を表示      End Sub
    UNICODE テキスト ファイルは、必ず FF FE の 2 バイトで始まることに注意してください。したがって、これらの 2 バイトをスキップする必要があります。また、UNICODE 文字列をファイルから読み出すには、バイナリ モードでファイルを開き、InputB を使って読み取る必要がある点にも注意してください。
  7. アプリケーションを実行します。[Command1] をクリックして、Unicode テキスト ファイルを作成します。
  8. [Command2] をクリックします。中国語文字の Dan1 とアルファベットの D が、テキスト ボックスに正しく表示されます。フォント設定を MingLiu にしたメモ帳を使用すれば、unicode.txt ファイルの内容を確認することもできます。
関連情報
関連情報については、次の「サポート技術情報」 (Microsoft Knowledge Base) の資料を参照してください。
177561HOWTO: Add and Enable Additional Languages in Windows NT
177561[NT] Windows NT でほかの言語を追加する方法
224305 INFO: Usage and Redistribution of FM20.DLL [OffDev]
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 193540 (最終更新日 2001-01-10) をもとに作成したものです。

プロパティ

文書番号:193540 - 最終更新日: 01/23/2003 02:27:00 - リビジョン: 1.0

  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • kbhowto kbvbp kbunicode kbvbp500 kbvbp600 kbctrl KB193540
フィードバック