« MZ-Tools(マクロ作成用のフリーウェア)の紹介 | トップページ | selectionオブジェクトをrangeオブジェクトに書き換える »

2009年4月12日 (日)

上付き数字に変換マクロ

Superscript 左図のように、数式や単位で出てくる10^-15やcm^3を上付きの数字にします。

「scriptchange.dot」をダウンロード

●作用および使用事例
"^"(ハットマーク)の直後に記載されている半角の数字および"-"(マイナス記号)を、上付きの数字に変換します。

たとえば、翻訳ソフトで英文を作成した場合に、英文テキストに書式情報を追加できないことがあります。

具体的には、「The翻訳」という機械翻訳ソフトの中では、生成された英文に下線をひいたり、上付き文字に変換したりすることができません。

よって、「The翻訳」で英文を作成する場合には、上付き文字部分に”^”などの記号を残しておき、ワードファイルにテキストをコピーしてから、一括で上付き文字に変換します。

●使い方
1.マクロをインストール(方法はこちら)をすると、 ツールバーに以下のようなボタンが表示されます。Superscript2

2.上付きにしたい数字の直前に"^"(ハットマーク)を記入した文書を用意します。

Superscript3

3.[上付]ボタンをクリック

4.結果が表示されます。

Superscript4

上付きに変換された文字は黄色に着色されます。

また、ハットマークの直後に半角数字か半角マイナス記号がない場合(図では半角スペースがある場合)には、ハットマークが青色に着色されています。

5.[蛍光色削除]ボタンをクリックすると、蛍光色が削除されます。
このときに削除されるのは、以下のいずれかの条件を満たす文字列だけです。

よって、文中に別の用途でつけた蛍光色は残ります。

(条件1)蛍光着色され、かつ上付きの半角数字および半角マイナス記号

(条件2)蛍光着色された半角ハットマーク

●プログラムの考え方
以下の手順で、プログラムを組みました。

①半角のハットマークを探す

②上記①の判定がYESの場合、ハットマークの直後に半角数字もしくは半角マイナス記号があるかを判定

③上記②の判定がYESの場合、(1)ハットマークを削除して、(2)ハットマーク直後の一連の半角数字および半角マイナス記号(例えば、”-15”など)を蛍光黄色の上付き文字にする

④上記②の判定がNOの場合、上記①で見つけたハットマークを蛍光青色に着色する(数字を伴わない単独のハットマークとしてあとで確認するため)

●工夫
1.確認用に着色
上記の③と④にて着色処理を入れたので、処理した場所を確認できます。また、この着色は一括して削除できます。

2.カーソル移動を減らしました!
rangeオブジェクトを使用しました。mySuperRangeで、ハットマークを検索し、myRangeで半角数字を検索しています。よって、ハットマークの削除や着色、または半角数字の上付き処理など、カーソルを移動せずにできるようになりました。

●rangeオブジェクトについて
今回のマクロでは、あえてrangeオブジェクトを使用しましたが、selectionオブジェクトを使っても同様のことができます。

rangeオブジェクトを使ったからといって、この程度のプログラムでは体感速度が上がるわけではありません。

今は、自分の練習のためにrangeオブジェクトを使っています。

rangeオブジェクトを使ってプログラムを短くすることができるみたいなので、いろいろと試しているわけです。

マクロのプログラマの方の中には、rangeを覚えることが大切、とおっしゃっている方もいますが、まだ、私にはその違いを体感するほどのプログラミングができていません。

私たちのような初心者は、まず、selectionオブジェクトに慣れることが大切だと思います。

selectionオブジェクトなら、カーソルの動きが見えるので、デバッグがやりやすいですね。

また、検索・置換の画面と連動し、かつマクロの記録と連動するので、独学もやりやすいと思います。

|

« MZ-Tools(マクロ作成用のフリーウェア)の紹介 | トップページ | selectionオブジェクトをrangeオブジェクトに書き換える »

マクロテンプレート」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/519619/44651063

この記事へのトラックバック一覧です: 上付き数字に変換マクロ:

« MZ-Tools(マクロ作成用のフリーウェア)の紹介 | トップページ | selectionオブジェクトをrangeオブジェクトに書き換える »