|    | 
     いつもお世話になっております。下記御存じの方がいらっしゃいましたら、ご教示頂きますようお願いします。 
 
■質問 
関数の引数(ByVal xxx As String)にUTF−8の文字列を渡す方法をご教示下さい。 
尚、文字列の入力元はワークシートのセルの内容です。 
 
■背景 
ブラウザから手動でhttpコマンド(※1)を叩く試験を、マクロ化しようとしています。 
コマンド送信は出来るのですが、ブラウザから実行する場合とマクロから実行する場合で 
文字コードに違いがあるようです。(※2) 
試験内容を変えずにマクロ化する必要があるので困っています。 
 
 
※1 開発している装置に送るコマンドと戻りがhttp。 
  イメージ: http://10.10.2.3/set_xxx?xxx=1 とブラウザのURL欄に入力すると、 
        result=OK と記載されたWebページが表示される。 
 
※2 ブラウザのURL欄に入力するとUTF−8で下記コマンドを実行 
  http://10.10.2.3/set_yyy?yyy=あいう (意味:パラメータyyyに「あいう」を設定) 
  http://10.10.2.3/get_yyy      (意味:パラメータyyyを取得) 
 
  → ブラウザから実行した場合は、 yyy=%e3%81%82%e3%81%84%e3%81%86 が返る。(UTF−8) 
    マクロから実行した場合は、 yyy=%82%a0%82%a2%82%a4 が返る。(S−JIS) 
 
■補足 
下記APIを使用してhttpコマンドを実行しています。 
Private Declare Function httpOpenRequest _ 
      Lib ”wininet.dll” _ 
     Alias ”httpOpenRequestA” _ 
     (ByVal hConnect As Long _ 
    , ByVal lpszVerb As String _ 
    , ByVal lpszObjectName As String _ ← ここがURL 
    , ByVal lpszVersion As String _ 
    , ByVal lpszReferer As String _ 
    , ByVal lpszAcceptTypes As Long _ 
    , ByVal dwFlags As Long _ 
    , ByVal dwContext As Long) As Long 
 
「ERROR:本文に禁止語句が含まれています。」 
と表示されたので、全て全角に変換しています。 
変換前は、英数は半角です。。 
 
以上です。 
 | 
     
    
   |