Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10588 / 13646 ツリー ←次へ | 前へ→

【20954】VBAでコード変換 ino 04/12/28(火) 13:49 質問[未読]
【20963】Re:VBAでコード変換 ちゃっぴ 04/12/29(水) 0:21 回答[未読]
【20967】Re:VBAでコード変換 ichinose 04/12/29(水) 1:33 発言[未読]
【20970】Re:VBAでコード変換 ちゃっぴ 04/12/29(水) 18:29 発言[未読]

【20954】VBAでコード変換
質問  ino  - 04/12/28(火) 13:49 -

引用なし
パスワード
   皆様方に質問です。
VBAにてセルに登録された文字列を判定したいのです。
EUCコードに変換して100バイトまでとしたいのですが、変換の仕方が分かりません。
お願いします。

【20963】Re:VBAでコード変換
回答  ちゃっぴ  - 04/12/29(水) 0:21 -

引用なし
パスワード
   > EUCコードに変換して100バイトまでとしたいのですが、
> 変換の仕方が分かりません。

VBA, Excelの関数等にEUCを扱うものはないので、
外部コンポーネント等を使用してやるか、

http://www.vector.co.jp/vpack/filearea/win/util/text/conv/code/index.html

自分で変換Tableをお書きください。

【20967】Re:VBAでコード変換
発言  ichinose  - 04/12/29(水) 1:33 -

引用なし
パスワード
   ino さん、ちゃっぴさん、こんばんは。

>皆様方に質問です。
>VBAにてセルに登録された文字列を判定したいのです。
>EUCコードに変換して100バイトまでとしたいのですが、変換の仕方が分かりません。
>お願いします。
ツールがあるのなら、それを使うのが便利ですよねえ!!

ただ、勉強も兼ねてなら・・・、
VBAで取得できるコードとEUCコードの関係を調べると解法が見出せるかと思います。

http://www.unixuser.org/~euske/doc/kanjicode/

↑この辺にそのヒントが出ていますので、参考にして下さい。
これ見るとシフトJISからの変換が簡単そうですが・・・。

ちなみにVBAでS-JISのコードを取得するには、
'============================
Sub Main()
  Dim mystr As String
  Range("a1").Value = "今年も後ワズカ"
  mystr = Range("a1").Value
  ReDim s_jiscd(1 To Len(mystr))
  i = 1
  For i = 1 To Len(mystr)
  s_jiscd(i) = Hex(Asc(Mid(mystr, i, 1)))
  Next i
  MsgBox Join(s_jiscd(), ",")
End Sub

なんて方法で取得できます。

参考になれば・・・・。

【20970】Re:VBAでコード変換
発言  ちゃっぴ  - 04/12/29(水) 18:29 -

引用なし
パスワード
   どのみちCode変換するんですから、Shift-JISの文字列を
Byte配列に送ってやっておいたほうが楽では?

  Dim bytTarget() As Byte
  Dim lngByteCount As Long
  Dim i As Long
  
  bytTarget = StrConv("対象文字列", vbFromUnicode)
  lngByteCount = UBound(bytTarget)
  For i = 0 To lngByteCount
    Debug.Print Hex$(bytTarget(i))
  Next

あとは ichinose さんご紹介SiteのLogicで変換してやれば
よいでしょう。

10588 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free