掲示板お問い合わせランダムジャンプ



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

別のblogとか

2009年10月20日
OOo Calcでハングルを分解する関数
…というのを自作してみました(Unicode前提)。一体いつ使うんだか;

解説:ワークシートに
=HANGDECOMPOSE("한국어 문자열")
と書けばハングル(U+AC00〜U+D7A3)を分解して表示します。ハングル音節以外の文字はそのまま出力します。

導入:ツール→マクロ→マクロの管理→OpenOffice.org Basicから「編集」を押して出るウィンドウに次のソースをコピペすれば使えるはずです。
Function HANGDECOMPOSE(HangStr As String) As String
  HangLen = Len(HangStr$)
  TempStr$ = ""
  For I = 1 To HangLen
    TempCode = Asc(Mid(HangStr, I, 1))
    If (TempCode >= 44032) And (TempCode <= 55203) Then
      SyllableCode = TempCode - 44032
      ChoseongCode = Fix(SyllableCode / 588)
      MoeumCode = Fix((SyllableCode mod 588) / 28)
      PatchimCode = (SyllableCode mod 28)
      TempStr = TempStr & Chr$(ChoseongCode + 4352) & Chr$(MoeumCode + 4449)
      If (PatchimCode > 0) Then
        TempStr = TempStr & Chr$(PatchimCode + 4519)
      End If
    Else
      TempStr = TempStr & Mid(HangStr, I, 1)
    End If
Next HANGDECOMPOSE = TempStr End Function
[ 投稿者:芙蓉美晴 (MihailJP) at 04:21 | LibreOffice | コメント(2) | トラックバック(0) ]