過去ログ

                                Page      46
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼マクロで、MidBを使うと、?????と表示されてしまいます  haru 02/9/8(日) 11:10
   ┗Re:マクロで、MidBを使うと、?????と表示されてしまいます  JuJu 02/9/8(日) 11:44
      ┗RE: Re:マクロで、MidBを使うと、?????と表示されてしまいます  haru 02/9/8(日) 20:14

 ───────────────────────────────────────
 ■題名 : マクロで、MidBを使うと、?????と表示されてしまいます
 ■名前 : haru
 ■日付 : 02/9/8(日) 11:10
 -------------------------------------------------------------------------
   シートに以下のデータがあります。

0101 あああ aaaaa .................. 13,500  10,030

 これに対してシート上で、=MIDB(RC[-1],44,10)とすると、
 10,030と表示されますが、
 マクロで、ave = MidB(Cells(i, 1), 44, 10)
 として、クイックウォッチすると、?????と表示されます。

 10,300を表示したいのですが、どうすれば良いですか?
 よろしくお願いします。
 ───────────────────────────────────────  ■題名 : Re:マクロで、MidBを使うと、?????と表示されてしまいます  ■名前 : JuJu <juju-bbs@su-u.com>  ■日付 : 02/9/8(日) 11:44  -------------------------------------------------------------------------
   haruさん、こんにちはぁ

> これに対してシート上で、=MIDB(RC[-1],44,10)とすると、
> 10,030と表示されますが、
> マクロで、ave = MidB(Cells(i, 1), 44, 10)
> として、クイックウォッチすると、?????と表示されます。

ワークシート関数の MIDB と 関数の MidB は処理する漢字コードが違います。
で、漢字コードを変換する処理が必要になります。

ちょっと長くなりますが、こんな感じです。
ave = StrConv(MidB(StrConv(Cells(i, 1), vbFromUnicode), 44, 10), vbUnicode)

ではではぁ
 ───────────────────────────────────────  ■題名 : RE: Re:マクロで、MidBを使うと、?????と表示されてしまいます  ■名前 : haru  ■日付 : 02/9/8(日) 20:14  -------------------------------------------------------------------------
   ▼JuJuさん、こんにちは。
 早速の御返事ありがとうございます。

>ワークシート関数の MIDB と 関数の MidB は処理する漢字コードが違います。
>で、漢字コードを変換する処理が必要になります。
>ちょっと長くなりますが、こんな感じです。
>ave = StrConv(MidB(StrConv(Cells(i, 1), vbFromUnicode), 44, 10), vbUnicode)
 うまくいきました。ありがとうございます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 46