一太郎 ふりがなマクロ 投稿サイト⇒一太郎

2022年10月18日

概略および注意事項

一太郎で使うマクロを公開します。

投稿サイト用のふりがな書式を一太郎のふりがなに変換します。
※小説家になろう様、アルファポリス様に対応。
※投稿サイト用のふりがな書式 とは、以下書式です。
 |橘咲帆《たちばなさほ》 

反対バージョンはこちら 一太郎 ふりがなマクロ 一太郎⇒投稿サイト

注意事項

このプログラム は、株式会社ジャストシステムから提供されたプログラムを利用して作成したものです。
ご自分の環境での改変等はご自由にして頂いて問題ございません。
当方にて貴方の使用目的に適合することの保証はできません。自己責任でお願いいたします。
プログラムの著作権は、株式会社ジャストシステムに帰属します。
よって、有償での再配布をすることはできません(無償ならば問題ないようです)。

マクロ実行の際は、必ずバックアップをした後に実行してください。
 

マクロコード

!!==============================================================================
!!【マクロ名】 ルビ変換:投稿サイト⇒一太郎
!!【見 出 し】 投稿サイト用ルビを検索し、一太郎ルビに変換する
!!【作 成 者】 Saho Tachibana
!!==============================================================================
!! このプログラムは、株式会社ジャストシステムから提供されたプログラム
!! を利用して作成したものです
!!******************************************************************************
!! (C)2020 橘花書房
!!******************************************************************************
!!******************************************************************************
!! 2022/10/16 v00.00 新規
!!******************************************************************************
!!******************************************************************************
!! エラー発生時の動作
!! Error ⇒中止
!! Cancel⇒中止
!! Search⇒中止しない
!!******************************************************************************
    ErrorBreakMode(1,1,0)

!!******************************************************************************
!! 実行前確認
!!******************************************************************************
    %tmpAry = {"Go","Cancel"}
    %tmpPgm = "ルビ変換:投稿サイト⇒一太郎"
    %tmpMsg = %tmpPgm & "を行います"
    %tmpRep = Alert(%tmpMsg,1,{{%tmpAry(1),"Y"},{%tmpAry(2),"C"}})

    select case %tmpRep
      case nil
        stop
      case 2
        stop
    end select

!!******************************************************************************
!! マクロ実行中の経過を画面に表示しない
!!******************************************************************************
    DisplayMode(0)

!!******************************************************************************
!! 位置確認
!!******************************************************************************

    !! 編集画面タイプ待避
    %tmpMode = GetEditingScreenType

    !! 編集画面をドラフト表示に変更
    if %tmpMode <> 2 then
        EditingScreenType(2)
    end if

    !! 全範囲指定
    SelectAll(.指定単位=1)

    !! 現在指定されている範囲の始点および終点情報
    %ra=GetRange()

    !! 最終位置通番退避
    $ra_End=100000000*%ra("終点ページ")+10000*%ra("終点行")+%ra("終点桁")

    !! 範囲の左上へカーソルを移動
    StartOfRange()

!!******************************************************************************
!! [|] がなくなるまで繰り返し
!!******************************************************************************

    !! カウント初期化
    $ct = 0

    Do
        !! [|] 検索 文書頭から あいまい検索なし
        SearchString("|",3,0)

        !! 検索なしの場合、ブレイク
        if not SearchStringResult() then
            Exit Do
        end if

        文字取得()
        ふりがな設定()
        ふりがな削除()
        ふりがな開始文字削除()

        !! カウントUP
        $ct = $ct + 1
    loop while SearchStringResult()

    !! 編集画面タイプを戻す
    EditingScreenType(.編集画面タイプ=%tmpMode)

    !! 終了メッセージ
    %tmpMsg = "変換件数 " & string($ct) & "件"
    Message(%tmpMsg,1)

!!******************************************************************************
!! 文字列、ふりがな取得
!!******************************************************************************
sub 文字取得()

    !! [|] 検索 文書頭から あいまい検索なし
    SearchString("|",3,0)

    !! 検索なしの場合、ブレイク
    if not SearchStringResult() then
        Exit Sub
    end if

    !! 文字開始位置へ字送り
    NextCharacter(1)

    !! パラメータ初期値
    %sw01=True
    $tmpText=""
    $tmpRuby=""
    $cntText=0
    $cntRuby=0

    !! [《] までループ
    Do
        !! 現在位置
        %ra_Cur=100000000*GetPage()+10000*GetRow()+GetColumn()

        If %ra_Cur>$ra_End then
            !! 現在位置が文書末の場合、ループを抜ける
            Exit Do
        end If

        if GetCharacter() = "《" then
            !! 1字送り
            NextCharacter(1)

            !! [》] までループ
            %sw02=True

            Do
                if GetCharacter() = "》" then
                    Exit Do
                else
                    !! ふりがなおよび、ふりがな桁数追加
                    $tmpRuby = $tmpRuby & GetCharacter()
                    $cntRuby = $cntRuby + 1
                    !! 1字送り
                 NextCharacter(1)
              End if
            Loop While %sw02=True

            !! 《》分の文字数をルビ文字数に足す
            $cntRuby = $cntRuby + 2
            %sw01=False
            Exit Do
        else
            !! 文字列および、文字列桁数追加
            $tmpText = $tmpText & GetCharacter()
            $cntText = $cntText + 1
            !! 1字送り
            NextCharacter(1)
        End if

    Loop While %sw01=True
   
end sub

!!******************************************************************************
!! ふりがな設定
!!******************************************************************************
Sub ふりがな設定()

    !! [|] 検索 文書頭から あいまい検索なし
    SearchString("|",3,0)

    !! 検索なしの場合、ブレイク
    if not SearchStringResult() then
        Exit Sub
    end if

    !! 文字開始位置へ字送り 
    NextCharacter(1)

    !! 文字開始位置を退避
    %tmpStaTP=GetPage()
    %tmpStaTR=GetRow()
    %tmpStaTC=GetColumn()

    !! 文字位置範囲指定
    jump(%tmpStaTP,%tmpStaTR,%tmpStaTC)
    SelectRangeStart(1)
    CursorRight($cntText)

    !! 均等割付でふりがな追加
    Ruby(1,$tmpRuby, 1)

End Sub

!!******************************************************************************
!! ふりがな削除
!!******************************************************************************
Sub ふりがな削除()

    !! [|] 検索 文書頭から あいまい検索なし
    SearchString("|",3,0)

    !! 検索なしの場合、ブレイク
    if not SearchStringResult() then
        Exit Sub
    end if

    !! 1字送り
    NextCharacter(1)

    !! [《] までループ
    %sw01=True
    Do
      !! 現在位置
        %ra_Cur=100000000*GetPage()+10000*GetRow()+GetColumn()

        If %ra_Cur>$ra_End then
            !! 現在位置が文書末の場合、ループを抜ける
            Exit Do
        end If

        if GetCharacter() = "《" then
            %sw01=False
            Exit Do
        else
            !! 1字送り
            NextCharacter(1)
        End if

    Loop While %sw01=True

    !! [《] 位置を退避
    %tmpStaRP=GetPage()
    %tmpStaRR=GetRow()
    %tmpStaRC=GetColumn()

    !! 全範囲解除
    CancelAllRange()

    !! 《》で囲まれた投稿サイト用ルビを範囲指定
    jump(%tmpStaRP,%tmpStaRR,%tmpStaRC)
    SelectRangeStart(1)
    CursorRight($cntRuby)

    !! 《》で囲まれた投稿サイト用ルビを削除
    Delete(1)

End Sub

!!******************************************************************************
!! ふりがな開始文字削除
!!******************************************************************************
Sub ふりがな開始文字削除()

    !! [|] 検索 文書頭から あいまい検索なし
    SearchString("|",3,0)

    if GetCharacter() = "|" then
        !! [|] 削除
        Delete(1)
        Exit Sub
    End if

End Sub

!!******************************************************************************
!!以下は 株式会社ジャストシステム 作成のツールより引用
!!******************************************************************************
!!******************************************************************************
!! *************Attention************
!!お客様は、このマクロサンプルプログラムを現状のままで、もしくは改変した
!!プログラムを第三者に配布することができます。
!!
!!ただし、このプログラムは株式会社ジャストシステムが作成したものであり、
!!このプログラムの著作権は、株式会社ジャストシステムに帰属します。
!!従いまして、以下の条件に同意、遵守していただいた上でご利用下さいますよ
!!うお願いいたします。
!!
!!①このプログラム及びお客様が改変したプログラムを配布する場合は、無償に
!! て行って下さい。
!!
!!②お客様が改変したプログラムは、お客様と株式会社ジャストシステムの共同
!! の著作物となります。従って、改変したプログラムの冒頭には、以下の表示
!! を行って下さい。
!! 「このプログラムは、株式会社ジャストシステムから提供されたプログラム
!! を利用して作成したものです。」
!!
!!③お客様が改変したプログラムに関するお問い合わせには、弊社は一切お答え
!! いたしません。
!!
!!④弊社は、このプログラムがお客様の使用目的に適合することの保証は行いま
!! せん。このプログラムの使用結果につきましては、お客様の責任とさせてい
!! ただきます。
!!******************************************************************************

© 2020 Saho Tachibana
Powered by Webnode
無料でホームページを作成しよう! このサイトはWebnodeで作成されました。 あなたも無料で自分で作成してみませんか? さあ、はじめよう