秀丸に英文(日本文)を入力し
There is no time to waste. The nation's economy faces three major problems this year. Plans to accelerate disposal could aggravate deflation.
が
↓
(1)There is no time to waste.
(2)The nation's economy faces three major problems this year.
(3)Plans to accelerate disposal could aggravate deflation.
となるように終止符(.)ごとに文を切ってそれぞれ文の前に(1)、(2),(3)...と
番号を入れたいのですが、どのようにマクロを組めばよいですか?
No.9ベストアンサー
- 回答日時:
>#6の補足の続きですが、(。
)でも\\。にするということでしょうか?ピリオドはメタキャラクタなので、ピリオドそのものをマッチさせるにはエスケープする必要がある。さらにマクロで正規表現を使う場合の""内の表記は\を二重にする。
句点はメタキャラクタではないのでエスケープする必要はない。
この回答への補足
”エスケープ”せずにマクロを以下のようにしました
replaceallfast "\\n", "",regular;
replaceallfast "。 *", "。\n",regular;
#i=result;
while(#i>0){
movetolineno 1,#i;
insert "("+str(#i)+")";
#i=#i-1;
}
endmacro;
以下の記事でマクロ実行しました
[米議会決議]「イラクは最後通告と受け止めよ」
イラク攻撃の準備を進めるブッシュ米大統領にとって、大きな援軍だろう。
米上下両院は、大統領が求めていたイラクへの武力行使容認決議を賛成多数で採択した。
決議は、イラクの脅威から米国の安全を守り、関連するすべての国連安全保障理事会決議を履行させるために、大統領が「必要かつ適切」と判断すれば、武力行使できるとする内容だ。
十一年前、湾岸戦争直前にも、議会は同様の決議を採択したが、小差だった当時に比べ、今回は大差の支持を得た。
イラクのフセイン政権が、大量破壊兵器の入手・拡散を図る危険な存在であることでは、ブッシュ政権と議会の認識は一致している。
結果このようになりました。
(1)[米議会決議]「イラクは最後通告と受け止めよ」 イラク攻撃の準備を進めるブッシュ米大統領にとって、大きな援軍だろう。
(2) 米上下両院は、大統領が求めていたイラクへの武力行使容認決議を賛成多数で採択した。
(3) 決議は、イラクの脅威から米国の安全を守り、関連するすべての国連安全保障理事会決議を履行させるために、大統領が「必要かつ適切」と判断すれば、武力行使できるとする内容だ。
(4) 十一年前、湾岸戦争直前にも、議会は同様の決議を採択したが、小差だった当時に比べ、今回は大差の支持を得た。
なんとか私の思うようになったようです。これでいいでしょうか?
No.8
- 回答日時:
No.6の訂正
誤
while(#i>0){
#iが0以上なら{}を実行しつづける。
正
while(#i>0){
#iが0よりおおきいなら{}を実行しつづける。
No.7
- 回答日時:
秀丸のヘルプの正規表現のところに
>マクロで正規表現を使う場合は、ダブルクォーテーション(")内の表記になるため、\マークを二重にして\\として書く必要があります。
とあります。
この回答への補足
#6の補足の続きですが、(。)でも\\。にするということでしょうか?
(。)の変換の場合は次のマクロでいいですか。
replaceallfast "\\n", "",regular;
replaceallfast "\\。*", "。\\n",regular;
#i=result;
while(#i>0){
movetolineno 1,#i;
insert "("+str(#i)+")";
#i=#i-1;
}
endmacro;
No.6
- 回答日時:
No.5の解説
replaceallfast "\\n", "",regular;
全ての改行を置換して消します。
replaceallfast "\\. *", ".\\n",regular;
全ての"."を".\n"(ピリオドと改行)に置換します。
細かく言うと、ピリオドの後に半角スペースがあれば一緒に置換されます。
#i=result;
さっき何個置換したかを#iに入れておく。
while(#i>0){
#iが0以上なら{}を実行しつづける。
movetolineno 1,#i;
#i行目の先頭にカーソルを移動。
insert "("+str(#i)+")";
カーソル位置に(#i)を挿入。
#i=#i-1;
#iの値から1を引いたものを#iに入れる。
}
ループ
endmacro;
マクロ終了。
はじめに番号を入れてピリオドで改行を入れて…
というようにやりかたはいろいろあると思います。
この回答への補足
(.)ではなく(。)で改行し番号をいれたいのですが、
#6のmacro解説の解説のうちで
「replaceallfast "\\. *", ".\\n",regular;
全ての"."を".\n"(ピリオドと改行)に置換します。
細かく言うと、ピリオドの後に半角スペースがあれば一緒に置換されます」
の(.)をそのまま(。)に変えて
「replaceallfast "\\。*", "。\\n",regular;
=「全ての"。"を"。\n"(終止符と改行)に置換しまする」
にするだけではだめですか。
(。)は(.)と違いメタキャラではありませんから
。の前で\は1つでいいでしょうか?
自分で。に変えて日本語の文でマクロ実行しましたが、日本語の文字が全て(。)に変換されました。
.なら\.にすべきですが、。は\。にする必要はないですか。それとも何が間違っているのでしょうか。
No.5
- 回答日時:
No.3のマクロは番号も自動で入ります。
ただし、最初から改行が入っていると番号がずれます。
最初に改行を消してごまかすと
replaceallfast "\\n", "",regular;
replaceallfast "\\. *", ".\\n",regular;
#i=result;
while(#i>0){
movetolineno 1,#i;
insert "("+str(#i)+")";
#i=#i-1;
}
endmacro;
マクロの使い方は秀丸のヘルプに書いてあるとおりに。
テキストファイルを作ってマクロを記述、拡張子を .mac にする。
マクロファイルは HIDEMARU.EXE と同じフォルダに置く。
そうすると、秀丸のメニューから
マクロ → マクロ実行...
でマクロが使えます。
この回答への補足
#3で紹介していただいたマクロを
次の記事で実行しました。
Change economic policy
-------------------------------------------------------------------------------
Yomiuri Shimbun
The nation marked the third New Year of the new century with its economy remaining in the doldrums and in critical condition.
The domestic economy has not been able to escape the "lost decade"slump that followed the collapse of the bubble economy of the 1980s, a slump that is unprecedented in the world.
Nearly two years have passed since the government of Prime Minister Junichiro Koizumi was inaugurated with the policy of structural reforms as a key tool to rebuilding the economy.
However, his reform initiatives have not borne fruit, and the economy remains mired in deflation.
そしたら、よそうに反して次のようになってしまいました。
(1)Change economic policy
(2)
(3)-------------------------------------------------------------------------------
(4)Yomiuri Shimbun
(5)
(6)The nation marked the third New Year of the new century with its economy remaining in the doldrums and in critical condition.
(7)
(8)
(9)The domestic economy has not been able to escape the "lost decade"slump that followed the collapse of the bubble economy of the 1980s, a slump that is unprecedented in the world.
(10)
(11)
(12)Nearly two years have passed since the government of Prime Minister Junichiro Koizumi was inaugurated with the policy of structural reforms as a key tool to rebuilding the economy.
(13)
(14)
(15)However, his reform initiatives have not borne fruit, and the economy remains mired in deflation.
(4)までいいのになぜ(15)まででてくる?
のでしょうか?
また私は
sentence(1)
sentence(2)
sentence(3)
と、番号を文頭につけるのではなくて、文末のピリオド(.)をそのまま(1)(2)(3)---に変えてもいいのですが。
ありがとうございます。#5のマクロを保存し、実行しましたら、以下のようになりました。
ただし、U.S.など文中に(.)が現れる場合は
事前にU.S.をUSに置換しなければなりませんでした。
同様にその他の文中の(.)の置換を除外する方法
がわかりません。
(1)Change economic policy-------------------------------------------------------------------------------Yomiuri Shimbun The nation marked the third New Year of the new century with its economy remaining in the doldrums and in critical condition.
(2)The domestic economy has not been able to escape the "lost decade"slump that followed the collapse of the bubble economy of the 1980s, a slump that is unprecedented in the world.
(3)Nearly two years have passed since the government of Prime Minister Junichiro Koizumi was inaugurated with the policy of structural reforms as a key tool to rebuilding the economy.
(4)However, his reform initiatives have not borne fruit, and the economy remains mired in deflation.
ついでに日本語の場合も同様に( 。)を
(1)日本文
(2)日本文
(3)日本文
に変えるマクロ教えてもらえないでしょうか?
「#5のマクロのこの部分を変えればいい」という程度で。
No.4
- 回答日時:
.\n に変換するとおかしくなるようですね。
いったん .を ---に置換し、
その後 正規表現で ---を \n()に置換したらいいですね。
それで 最後の()を 最初にもってくればOKです。
この回答への補足
(.)はメタキャラだということがわかりました
それで全文字
()
()
()
()
()
()
()
という具合に置換された理由がわかりました。
(実はこの1週間、マクロの勉強してました)
はじめから¥.を\n()に置換することするのは
どうですか?
No.3
- 回答日時:
置換ダイアログで「正規表現」にチェックをいれると \n が改行になります。
初めて秀丸マクロを組んでみました。
とりあえず例文では期待した動作をしてます。
replaceallfast "\\. *", ".\\n",regular;
#i=result;
while(#i>0){
movetolineno 1,#i;
insert "("+str(#i)+")";
#i=#i-1;
}
endmacro;
No.1
- 回答日時:
1 2 3と入れるのは わかりませんが、
. を .\n()には置換できますので、それから手動で直したらいいでしょう。
(正規化利用)
この回答への補足
ありがとうございます。
There is no time to waste. The nation's economy faces three major problems this year. Plans to accelerate disposal could aggravate deflation.
を[検索]→[置換]のダイアローグを開き、[検索(S)]で.(ピリオド)を入れ、[置換(E)]で.\n()を入れ右の[全て置換]をクリックしました。
その結果次のようになりましたが、
There is no time to waste.\n()The nation's economy faces three major problems this year.\n()Plans to accelerate disposal could aggravate deflation.\n()
その後の「手動」の直し方を教えていただけないでしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csvデータ ダブルクォーテ...
-
csvデータのダブルクォーテーシ...
-
VBA 置換文字がみつからない時
-
xmlファイル内の文字列置換
-
ファイルへの追加書き込みについて
-
特定の列のみ置換を行いたい
-
スペースで区切られた氏名から...
-
テキストボックスの文字列を置...
-
【Excel VBA】文字列の置換作業...
-
c# ビルド直前にコードを置換で...
-
対称群はなぜそう呼ばれるので...
-
Eclipse 改行後のタブ
-
複数のパワーポイントファイル...
-
CreateFileしてからtruncate
-
document.referrer防御
-
PowerShellでテキストの空白行...
-
SQL IIF と REPLACE のやりかた
-
各項目がダブルクォーテーショ...
-
バッチファイルの処理が実際の...
-
マクロ超初心者です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 置換文字がみつからない時
-
各項目がダブルクォーテーショ...
-
正規表現で、特定の文字列を含...
-
csvデータ ダブルクォーテ...
-
スペースで区切られた氏名から...
-
正規表現 特定の文字列を含む行...
-
○文字目に文字挿入
-
C#で空白行を削除する方法
-
EXCEL警告「置換対象のデータが...
-
Excel・ユーザーフォームの情報...
-
ハングルを日本語に置換
-
秀丸エディタで、「-」や「ー」...
-
EXCEL VBA でCTRL+Fのダイア...
-
xmlファイル内の文字列置換
-
csvデータのダブルクォーテーシ...
-
C言語でテキストファイルの内容...
-
テキストボックスの文字列を置...
-
Eclipse 改行後のタブ
-
特定の列のみ置換を行いたい
-
パワーポイントの一括置換:複...
おすすめ情報