メッセージボックスにハングル文字を表示するには?


いさ  2003-12-11 20:30:58  No: 80838

シートに記述されている文字列(ハングル文字含む)を取得し、
メッセージボックスに表示したいのですが、
そのままでは文字化けしてしまいます。

 MsgBox ActiveWorkbook.ActiveSheet.Cells(1, 1) '(1,1)にはハングル文字

試しに
 MsgBox strConv(ActiveWorkbook.ActiveSheet.Cells(1, 1),vbUnicode)
 MsgBox strConv(ActiveWorkbook.ActiveSheet.Cells(1, 1),vbFromUnicode)
とかやってみましたがだめでした。

どなたかご教授願います。
よろしくお願いいたします。


魔界の仮面弁士  2003-12-11 23:17:36  No: 80839

Excel VBAのMsgBox関数は、Unicodeに対応していません。
WideバージョンのMessageBox APIで代用してみてください。

====== 呼び出し側 =====
  MsgBoxW ActiveWorkbook.ActiveSheet.Cells(1, 1).Value

====== 標準モジュール =====
Option Explicit

Private Declare Function MessageBoxW Lib "User32" _
   (ByVal hWnd As Long, _
    ByRef lpText As Byte, _
    ByRef lpCaption As Byte, _
    ByVal uType As Long) As Long

Public Function MsgBoxW( _
    ByVal Prompt As String, _
    Optional ByVal Button As VbMsgBoxStyle = vbOKOnly, _
    Optional Title As String = vbNullString) As VbMsgBoxResult

    Dim abytPrompt() As Byte
    Dim abytTitle() As Byte

    abytPrompt = Prompt & vbNullChar
    If StrPtr(Title) = 0 Then
        abytTitle = Application.Name & vbNullChar
    Else
        abytTitle = Title & vbNullChar
    End If

    MsgBoxW = MessageBoxW(Application.hWnd, abytPrompt(0), abytTitle(0), Button)
End Function


いさ  2003-12-12 00:59:28  No: 80840

ありがとうございます。

やってみましたところ、
MsgBoxW = MessageBoxW(Application.hWnd, abytPrompt(0), abytTitle(0), Button)
で、以下のようなエラーになりました。
------------------------------
  実行時エラー'438':
  オブジェクトは、このプロパティまたはメソッドをサポートしていません。
------------------------------

何か設定をしなければならないことがあるのでしょうか?


魔界の仮面弁士  2003-12-12 02:31:05  No: 80841

使用しているExcelのバージョンは何ですか?
もし、2世代前の Excel 2000 (あるいはそれ以前のバージョン)を
使用されているのであれば、ApplicationオブジェクトにHwndプロパティが
用意されていないため、そのようなエラーが発生します。

古いExcelを利用されている場合は、替わりに、GetActiveWindow API や
FindWindow API等で調べた自アプリのウィンドウハンドルを
指定するようにしてみてください。


いさ  2003-12-12 02:41:25  No: 80842

失礼しました。

Excel2000(SP3)
Windows2000

です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加