こんにちは。以前こちらで以下の質問をさせてもらいました。
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.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が欲しいのですが、何かスマートな方法は無いでしょうか。。
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.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&
とか・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- 数学 数学の証明問題について質問です。 今日私大入試があったのですが、AとBの共通部分となるxの範囲を求め 1 2023/02/10 15:27
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) 全角文字「ヴ」の半角文字「ヴ」への変換方法について 3 2022/11/05 12:07
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) VBAのifで 4 2023/05/16 14:21
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA 作業後に選択範囲...
-
別のフォームで記述している関...
-
ACCESSで別DBにあるクエリを...
-
VBAでのユーザフォームの表示有...
-
Excelのマクロ実行後に動作が重...
-
Excel VBAのステップイン
-
エクセル マクロ 別シートから...
-
ascW関数の結果がおかしい
-
質問2回目になっちゃいます ex...
-
Excel vba 条件分岐 空白セルが...
-
ステップモードの動作確認方法
-
excel2010でボタンが反応しなく...
-
エクセルで条件をつけて図形を...
-
エクセルでの6ヶ月平均の出し方
-
フルスクリーンモードで開いたP...
-
ワードで、グレーの部分しか入...
-
Switchのわんことあそぼ、めざ...
-
エクセルで非表示行を抜かして...
-
Excelで連番が増えるごとに数式...
-
ダウンローダ(Irvineなど)で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 作業後に選択範囲...
-
別のフォームで記述している関...
-
Sub Auto_Open() 実行されない
-
最小化ボタンで最小化したフォ...
-
ACCESSで別DBにあるクエリを...
-
Excelで、チェックボックスにチ...
-
円の中に等間隔に線を引くには
-
VBAでのユーザフォームの表示有...
-
エクセル マクロ 別シートから...
-
Excel vba 条件分岐 空白セルが...
-
ascW関数の結果がおかしい
-
Excelのマクロ実行後に動作が重...
-
メニューバーのイベントが2回...
-
ExcelVBAで毎月月初の最初にBoo...
-
Excel VBAのステップイン
-
ExcelVBA 日付変更
-
excel2010でボタンが反応しなく...
-
エクセルVBAのコードで質問です...
-
ExcelVBA ドロップボックスで月...
-
エクセル VBA
おすすめ情報