
こんにちは。以前こちらで以下の質問をさせてもらいました。
http://okwave.jp/qa2842004.html
同様の質問なのですが、msdnを見ると
「asc関数は-32768 ~ 32767の範囲の文字コードを表すInteger値を返し、AscW は、入力文字に対して Unicode コードポイントを返します。範囲は 0 ~ 65535です。」と書いてあります。
しかし私の環境でascW関数を実行すると、-32768 ~ 32767の範囲の値が返ってきてしまいます。
たとえば、"耀"の文字(32768番)を実行すると、
Dim a as Long
a = ascW("耀")
結果は32768ではなく、-32768が返ってきてしまいますし、同様にascW("老")の結果は32769ではなくて、-32767です。
どなたか原因と解決方法をご教授願えませんでしょうか?
環境はWindowsXP(SP2)にExcel2002(SP3)、VB6.0です。
よろしくお願いします。
No.4
- 回答日時:
>
http://msdn2.microsoft.com/ja-jp/library/zew1e4w …> これって、VB.netのヘルプなんでしょうか?
そうですね。
バージョンが明記されている場合を除けば、
「msdn『2』.microsoft.com」のサイトは、「.NETFramework『2.0』」
つまりVB2005を対象としたヘルプです。
また、
----------------------------------------
名前空間 : Microsoft.VisualBasic
アセンブリ : Visual Basic Runtime Library (Microsoft.VisualBasic.dll)
----------------------------------------
の様に「名前空間」や「アセンブリ」と言うのが書いてあれば、VB.NET以降ですね。
> 0 ~ 65535が欲しいのですが、何かスマートな方法は無いでしょうか。。
余りスマートじゃないですが・・・
a = CLng("&H" & Hex(AscW("耀")))
とか・・・
a = AscW("耀") And &HFFFF&
とか・・・
No.3
- 回答日時:
こんな感じでどうでしょうか。
Private Sub CommandButton1_Click()
Dim s As String
Dim lngUniCode As Long
s = "耀"
lngUniCode = CLng(AscW(s)) And &HFFFF&
MsgBox s & ":" & lngUniCode & ":" & Hex(lngUniCode)
End Sub
&HFFFF& の末尾の & は Long の型宣言文字です。
ちなみに、
http://msdn2.microsoft.com/ja-jp/library/zew1e4w …
は VB 2005 ( = .NET ) のリファレンスのようです。
http://msdn2.microsoft.com/ja-jp/library/2x7h1hf …
に「 Microsoft Visual Basic 2005 は~」と書かれていますね。
No.2
- 回答日時:
> Excel2002(SP3)、VB6.0です。
ってことですが・・・
> AscW は、入力文字に対して Unicode コードポイントを返します。範囲は 0 ~ 65535です。
これは、VB.NETのヘルプ(MSDNライブラリ)の記述ではありませんか?
VB6やVBAでは
> しかし私の環境でascW関数を実行すると、-32768 ~ 32767の範囲の値が返ってきてしまいます。
で正しいはずですが・・・
http://msdn2.microsoft.com/ja-jp/library/zew1e4w …
これって、VB.netのヘルプなんでしょうか?
0 ~ 65535が欲しいのですが、何かスマートな方法は無いでしょうか。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA ASC関数で変換できない文字の説明
Visual Basic(VBA)
-
CODE関数から他の文字コードの求め方
Excel(エクセル)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
VBAによる第3、4水準文字の判定について
Visual Basic(VBA)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
エクセルでセルの中身が漢字かどうか識別する方法は?
Excel(エクセル)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
アクセスで外字を探す方法
Access(アクセス)
-
9
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
10
Excel上でどれが外字か調べたい
その他(コンピューター・テクノロジー)
-
11
エクセルVBAでシートモジュールでのパブリック変数
Excel(エクセル)
-
12
VBAで仕様書は書きますか?
Visual Basic(VBA)
-
13
すでにコピーした情報を貼り付けたらイベントを発生
PowerPoint(パワーポイント)
-
14
UNICODE文字が含まれているかのチェック
Visual Basic(VBA)
-
15
エクセル VBA マクロ 塗りつぶしていないセルのRGB色の数値について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA 作業後に選択範囲...
-
別のフォームで記述している関...
-
エクセル マクロ 別シートから...
-
ascW関数の結果がおかしい
-
Excel VBA 選択範囲の罫線色の...
-
VBAでのユーザフォームの表示有...
-
ACCESSで別DBにあるクエリを...
-
Sub Auto_Open() 実行されない
-
Visual Basic 6.0のフォームの...
-
円の中に等間隔に線を引くには
-
GetAsyncKeyState() を利用する...
-
最小化ボタンで最小化したフォ...
-
エクセルで条件をつけて図形を...
-
エクセルでの6ヶ月平均の出し方
-
ワードで、グレーの部分しか入...
-
フォームへの自動補完
-
ユーザーフォームの連続表示に...
-
WEB上で入力できるシフト表
-
エクセルVBAユーザーフォーム
-
Excelの関数で複合条件に一致し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 作業後に選択範囲...
-
別のフォームで記述している関...
-
VBAでのユーザフォームの表示有...
-
Excel VBA 選択範囲の罫線色の...
-
エクセル マクロ 別シートから...
-
ascW関数の結果がおかしい
-
ACCESSで別DBにあるクエリを...
-
最小化ボタンで最小化したフォ...
-
ステップモードの動作確認方法
-
Sub Auto_Open() 実行されない
-
BASIC ListViewの選択された行...
-
ExcelVBAで毎月月初の最初にBoo...
-
C++Builderのエラー...
-
Excelのマクロ実行後に動作が重...
-
excelのvbaを使って日付を置換...
-
VBAで選択クエリを実行したらデ...
-
円の中に等間隔に線を引くには
-
メニューバーのイベントが2回...
-
MATLABの乱数生成関数 rand( ) ...
-
エクセル VBA
おすすめ情報