Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

シフトJIS漢字とエクセル上の漢字との相互変換について

523 views
Skip to first unread message

エクセル初心者2010

unread,
Feb 9, 2010, 9:11:01 PM2/9/10
to
シフトJIS漢字とエクセル上の漢字との相互変換のやり方が解りません。

どなたか、ご指導、ご教授お願いいたします。

Mike

unread,
Feb 10, 2010, 8:14:29 AM2/10/10
to
=DEC2HEX(IF(ROUNDUP(HEX2DEC(LEFT(DEC2HEX(CODE(A2),4),2))/2,0)+112<=159,ROUNDUP(HEX2DEC(LEFT(DEC2HEX(CODE(A2),4),2))/2,0)+112,ROUNDUP(HEX2DEC(LEFT(DEC2HEX(CODE(A2),4),2))/2,0)+112+64))&DEC2HEX(IF(MOD(HEX2DEC(LEFT(DEC2HEX(CODE(A2),4),2)),2),IF(HEX2DEC(RIGHT(DEC2HEX(CODE(A2),4),2))+32>=127,HEX2DEC(RIGHT(DEC2HEX(CODE(A2),4),2))+32,HEX2DEC(RIGHT(DEC2HEX(CODE(A2),4),2))+32-1),HEX2DEC(RIGHT(DEC2HEX(CODE(A2),4),2))+126))

--
Mike

"エクセル初心者2010" <20...@discussions.microsoft.com> wrote in message news:0F6160AF-54FB-4314...@microsoft.com...

T. Sugita

unread,
Feb 17, 2010, 8:54:42 AM2/17/10
to
In message news:0F6160AF-54FB-4314...@microsoft.com...
"エクセル初心者2010" <20...@discussions.microsoft.com> wrote

> シフトJIS漢字とエクセル上の漢字との相互変換のやり方が解りません。

以下でシフト符号化表現の規定を参照できます。

http://www.jisc.go.jp/index.html

「JIS検索」から「X0208」を検索後、X0208_04 のページ 3 の
「4.3 2バイト図形文字集合」

文字から SJIS への変換

区(jk) = INT(CODE(A2)/256)-32
点(jt) = MOD(CODE(A2),256)-32

区と点から規定に書かれた S1 と S2 が求められますので、
DEC2HEX(S1*256+S2,4)
で SJIS コードが求められます。

逆変換に関しては、各条件で求められる区間が重なっていない
ことから、それぞれの条件で区分けすれば、求められます。
(たとえば、区が奇数の場合のS2は最大 93+64=157、偶数の場合
は最低 2+158=160 のように、範囲によって求まります)

B2 に SJIS(16進) が入っている場合の S1、S2 の求め方

S1 = HEX2DEC(LEFT(B2,2))
S2 = HEX2DEC(RIGHT(B2,2))

または、

S1 = INT(HEX2DEC(B2)/256)
S2 = MOD(HEX2DEC(B2),256)

たとえば、区が偶数の場合は S2=点+158 なので、点=S2-158
になります。

区と点が求まれば、
CHAR((区+32)*256+(点+32))
で文字に変換できます。

0x100 未満をどうするかは別問題ですので、どちらの場合も、
とりあえず除外(値をそのまま使用)されたほうが良いと思います。

--
杉田
nws-...@bp.iij4u.or.jp

0 new messages