|
僕は現在、以下の『全唐詩』のサイトから漢詩をコピーしてまとめるという
作業をしています。
簫堯『中國詩苑』 - 《全唐詩》總目(私人公益 全文免費下載)
http://www.xysa.com/quantangshi/t-index.htm
詩の文章をコピーして一句ごとに改行を入れ直して、
それを Excel にコピーして書き下し文を書いていって、
原文と書き下し文がセットとなる形にして、
その後、出来たものを縦書きの Word の文書にコピーする、
そして書き下し文の難しい言葉にふりがなを振っていき、
最後に原文の一文字一文字の間に半角スペースを入れて出来上がり、
それを繰り返していました。
何回も繰り返しているうちに、半角スペースをキーボードで入力するのは
かなり面倒になってきましたので、この作業を Excel のマクロという
Excel の処理を自動化するプログラムを使って行えるようにしました。
次のような Excel のマクロを書いてみました。
' ここからがマクロの本文です。(この行はコメント行です)
' エラー防止のお約束です。
Option Explicit
' 漢詩の本文に一文字一文字に半角スペースを追加するマクロです。
Sub 漢詩原文スペース追加()
' 変数の宣言です。
Dim r As Range
Dim sr As String
Dim sa As String
Dim co As Long
' マウスカーソルで選択した Excel のセルの範囲を一つ一つ取得します。
For Each r In Selection
sa = ""
sr = r.Value
For co = 1 To Len(sr)
' ここの部分で半角スペースを追加しています。
' 一文字ずつ取り出して半角スペースを加えることを繰り返しています。
sa = sa + Mid(sr, co, 1) + " "
Next
' 末尾の全角の丸や点の前後の半角スペースを削除しています。
sa = Replace(sa, " 。 ", "。")
sa = Replace(sa, " , ", ",")
sa = Replace(sa, " 、 ", "、")
' 半角スペースが入った文字列をもとのセルの値に代入しています。
r.Value = sa
Next
End Sub
' ここまでが半角スペースを追加するマクロです。
' 半角スペースを全て取り除くマクロです。
' これは状態を元に戻すために仮に作りました。
Sub スペース削除()
' 変数の宣言です。
Dim r As Range
Dim sr As String
' マウスカーソルで選択した Excel のセルの範囲を一つ一つ取得します。
For Each r In Selection
' セルの値を取り出しています。
sr = r.Value
' 半角スペースを空っぽの文字列に置き換えて取り除いています。
r.Value = Replace(sr, " ", "")
Next
End Sub
' マクロの本文の終わりです。
どんな風になるかを上の画像で示しています。
マクロ使用前の状態が画像の一枚目です。
このようにしてマウスで範囲を選択して、マクロを実行しますと、
二枚目の画像の状態のように半角スペースが一文字ごとに追加されています。
そして作業を終えて Word の文書ファイルになった様子が三枚目の画像です。
一件の面倒事が解決できました。僕はこういうことを考えるのが好きです。
プログラミングは高校生以来の趣味で、学生の頃の研究分野でもありました。
書道や水墨画のような風流な特技を持たない僕は、
日々このようにして楽しんでいます。
|