Option Explicit
Private Declare Function IbukiTenSetup Lib "ibukiTenC.dll" _
Alias "?IbukiTenSetup@@YGHPBD0@Z" _
(ByVal sDic As String, ByVal sPATH As String) As Long
Private Declare Function IbukiTenGetNabcc Lib "ibukiTenC.dll" _
Alias "?IbukiTenGetNabcc@@YGHPBDPADPAHH_N3H@Z" _
(ByVal sSource As String, ByVal sNabcc As String, _
ByVal lTaiou As Long, ByVal lLength As Long, _
ByVal lIsFirstTextInParagrath As Long, _
ByVal lIsNumberWago As Long, _
ByVal lTransBrlMode As Long) As Long
Private mfSetup As Boolean
'--------*---------*---------*---------*---------*---------*---------*---------
' 点字一筆くん Macro
Public Sub 点字一筆くん()
Const s_PATH As String = "C:\Program Files\ibukiTenC\dic\"
Const l_MIN_BUF_SIZE As Long = 256
Const l_NO_FIRST_TEXT As Long = 0 '先頭2マス取らない
Const l_NO_NUMBER_WAGO As Long = 0 '数字を和語にしない
Const l_TRANSE_MODE_JPN1ENG As Long = 0 '日本語点訳1級英語
Dim sSource As String
Dim lBufSize As Long
Dim sNabcc As String
Dim sTaiou As String
Dim lngRet As Long
Dim lPos As Long
Dim lCode As Long
Dim sResult As String
Dim sErrMes As String
'未初期化の場合、点訳用辞書を指定します。
If Not mfSetup Then
If IbukiTenSetup(s_PATH & "initdic.pat", s_PATH) = 0 Then
MsgBox "辞書の読込に失敗しました"
Exit Sub
End If
mfSetup = True
End If
'原文に応じてバッファを確保
sSource = ActiveDocument.Content.Text
lBufSize = l_MIN_BUF_SIZE + LenB(sSource) * 3
sNabcc = String(lBufSize, vbNullChar)
sTaiou = String(lBufSize * 2, vbNullChar)
'DLL呼出:API1文を入力して点訳を実行しNABCCコードを取得
lngRet = IbukiTenGetNabcc(sSource, sNabcc, StrPtr(sTaiou), lBufSize, _
l_NO_FIRST_TEXT, l_NO_NUMBER_WAGO, l_TRANSE_MODE_JPN1ENG)
If lngRet = 1 Then
Do
lPos = lPos + 1
lCode = Asc(Mid(sNabcc, lPos, 1))
sResult = sResult & Hex$(lCode) & ":"
Loop While lCode <> 0
ActiveDocument.Content.Text = sSource & vbCr & sResult
Else
Select Case lngRet
Case -1: sErrMes = "入力テキストがありません"
Case -2: sErrMes = "点訳に失敗しました"
Case -3: sErrMes = "NABCC変換DLLの読み込みに失敗"
Case -4: sErrMes = "バッファからあふれました"
End Select
MsgBox sErrMes
End If
End Sub
点字を書く 41 (宛名管理) 2011.09.03
点字を書く 40 (出力用テンプレート作成) 2011.08.15 コメント(1)
点字を書く 38 (出力用テンプレート作成) 2011.08.12 コメント(4)
PR
Calendar
Keyword Search