• ベストアンサー

秀丸エディタのマクロのことで

秀丸エディタ(Ver3.19)の置換で正規表現を用いても以下のことはできないと思います。 501~520までの数字を623~642に一括変換する。 そこで上記のようなことが可能なマクロを教えてもらいたいのですが。ようは置換元の範囲と置換後の範囲を指定することで、任意の数字に対して連番置換ができるマクロです。 ワードのVBAでも結構です(エクセルではダメですが)。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

ワードのVBAで回答。 マクロの記録を改造。501から520までを122プラスした文字数字に置換する問題とする。 Sub Macro1() Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting For i = 501 To 520 With Selection.Find .Text = StrConv(Trim(Str(i)), 4) MsgBox StrConv(Trim(Str(i + 122)), 4) .Replacement.Text = StrConv(Trim(Str(i + 122)), 4) .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Replace:=wdReplaceAll Next i End Sub .Forward=True以下.MatchFuzzy = Trueまでは不要と思います。 少数例でテスト済み。

yusari
質問者

お礼

ありがとうございました!!!

その他の回答 (2)

  • ribisi
  • ベストアンサー率28% (247/864)
回答No.2

今日の昼間に、同様の件で回答した者です。 あれから、簡単な方法を思いつきました。 あくまで、質問内容のような、1対1置換を20個程度、という条件ですが、 秀丸マクロで replaceallfast "501","623"; replaceallfast "502","624"; (以下同様) と、置換コマンドをベタ打ちしてしまいます。 今後も同様な用件があると見込まれるのでしたら、ちゃんとプログラミング したほうがよいですが。

yusari
質問者

お礼

ありがとうございました。

回答No.1

 はなはだ余計なお世話かもしれないけど一言。  質問のご趣旨からすると「マクロを一から書いてくれ」という意味合いなんですね。そもそもマクロというのは、ユーザーが自分のために自分で書くプログラムなんですよね。  こういう場合の質問の書き方として、私が書くなら、 「自分なりにマクロを書いてみました。以下のとおりです。それで実行してみたら、うまく動きませんでした。どこが悪いか教えてください。」  これならきっとすぐにでも回答が付くと思います。  それと、秀丸のマクロについての質問なら、秀丸のサポートサイトのほうが的確だと思います。質問者は努力の跡を見せないと、回答者は回答しにくいですね。

yusari
質問者

お礼

ありがとうございました。 >マクロというのは、ユーザーが自分のために自分で書くプログラムなんですよね。 それはある程度知識がある人という前提条件が付くと思いますが。PCを扱う人誰もが普通に自分のために使いこなせるレベルのものではないと思いますが。 >こういう場合の質問の書き方として、私が書くなら、 それは貴方のようにマクロの知識のある人の場合ということなのでは。 >質問者は努力の跡を見せないと、回答者は回答しにくいですね。 「回答者は回答しにくい」と一般論に話を持っていかれているようですが、貴方個人が回答しにくいということなのでは。

関連するQ&A

  • エディタの連続変換について

    通常使用しているエディタはサクラエディタと秀丸ですが、 文章の定型変換を自動化させたく「変換リストによる連続置換 Ver.3.00 - 秀まるおのホームページ」 を使ってみたのですが、正規表現と通常の置換えが混在しているリストではうまく変換できませんでした。 正規表現と正規表現ではない普通の置換えをリストにしたものを自動で連続変換してくれるマクロ的なものを持っているエディタまたはアドオン的なものがあったら知りたいのです。 変換例を示すと ^○○\nを削除 ○○Xを○Xに置換え ^\nを削除 YY\nを削除 このような組み合わせが15組程あり、年に数回内容が変更されます。 これを置換えで手作業で行っています。 (変換例は秀丸の正規表現で記載しました) 秀丸やサクラエディタにこだわらずにこのような作業を自動化できたらと思っています。 ちなみに変換文章は多いときは4000行程度少ないときで500行程度です。

  • 秀丸エディタで正規表現とマクロを詳しく知りたい

    秀丸エディタをインストールして使い始めたのですが正規表現とマクロを詳しく知りたいのですが解説しているサイトをご存知でしたら教えてください。秀丸エディタに付属のヘルプは一通り目を通しましたが正規表現とマクロがどこに書いているのが分りませんでした。もう一度ヘルプをじっくり見るつもりです。amazonに秀丸エディタの市販の解説本は色々あったのですが どれを買ったらいいか決められませんでした。秀まるおサイト販売の白黒の公式マニュアルはどうでしょうか? また、まだ送金はしていないのですが使用制限・試用期間があるのでしょうか?しばらくすると送金してください等のポップアップが出るのでしょうか?もちろんこのソフトの凄さは分かっているのでちゃんと作者に送金して使うつもりです。

  • 秀丸エディタのマクロ整形1

    秀丸エディタのマクロ整形1 秀丸 整形&連続&引用マクロ Ver.2.15 作者 noro 1999/03/09 をダウンロードしました。 ●(Q08)整形の桁折りの位置を70に固定していますが、変更するのは、どうしますか? ●(Q09)現在の秀丸エディタのバージョンで、マクロは、問題無く動くでしょうか? ●(Q10)現在、noroさんのメールアドレスは、現在登録されてなく連絡出来ません。新しい連絡先を誰かご存知でしょうか? ●(Q11)報告書などの整形マクロを使いたいのですが、このマクロ以外に皆さんのお気に入りのマクロを教えていただけませんでしょうか?  たとえ、一つだけでも、お知りのことが有りましたら、よろしく教授方お願いします。 敬具

  • テキストエディタでの置換(正規表現チェック済)と同様のことを

    テキストエディタでの置換(正規表現チェック済)と同様のことを エクセルのマクロでもしたい。 画像を添付しましたが、秀丸で置換を選択し、 検索文字列と置換文字列を入れて、正規表現チェックのチェックボックスを 選択した状態で実行するのと同様のことをエクセルのマクロで行いたいです。 正規表現混みだととても難しいです。 やりたいことはマクロで、フォルダ内のテキストファイルを置換をかけていきたいです。(テキストファイルは複数ある状態)そのテキストファイルを更新できればいいです。(別テキストで出力されてもいいです。) どなたか詳しい方、教えていただけませんでしょうか? よろしくお願いいたします。 --- 検索エディタ【秀丸】【置換】 検索【.*item1=(.*) item2=(.*) .*】 置換【\1\t\2】 正規表現チェック

  • 秀丸のマクロ

    マクロ全くの初心者です。 以下の秀丸のマクロを次のように変更したいです。 1連番の数字を記号$kの前ではなく後ろに。 2()は不要 3$sに入力した記号が出てきたら連番数字をはじめの1から連番にし、 これを繰り返す。 宜しくお願いいたします。 //----------------------------------------------// //Macro1 $k = input("記号は?"); $s = input("数字を1に戻す記号は?"); gofiletop; #i = 1; while( 1 ) { searchdown $k; if(!result) break; insert "("+str(#i)+")"; #i = #i + 1; } endmacro; //----------------------------------------------//

  • 秀丸の置換で正規表現を使う方法を教えてください

    お世話になります 秀丸エディタの置換を用いて、 (’.ab12#-cd’)のような文字列や数字、記号のまじった ( )から( )の中身を検索置換して (’’)にしたいと考えています。 具体例 (’.ab12#-cd’) (’.ab#37-c’) (’..ab-82#d%’) (’.12jg+#ppv’) (’.ab12lentext’)から ↓ (’’)に置換したい。 秀丸を使うときはあっても単純な 一文字程度の検索置換しかおこなったことがなく どうにも方法がうかばなかったところ 友人から、正規表現というものを 使えば実現できるようだと聞きました。 友人も残念ながら、プログラミングの経験は あまりなくて正規表現での記述方法は わからないいうことでした。 正規表現を使ってこれを実現する方法を 教えていただけませんでしょうか よろしくお願いいたします

  • 秀丸のマクロについて

    すみません。。検索してもなかなか見つからないので詳しいかたどうぞ教えてくださいませんでしょうか(/_;)?? 秀丸のマクロで下記のようなHTMLの編集をしたいのですが 「◎◎◎◎◎」部分はそれぞれ異なる文字列が入ります。 マクロ上「◎◎◎◎◎」には正規表現でなんと入れればいいのでしょうか?? ------------------------------------------------------------ question "変換しますかっ?"; if(result ==yes ){ replaceallfast "<span class=\"★\"><strong>◎◎◎◎◎</strong></span><br>" , "<p class=\"★\"><strong>◎◎◎◎◎</strong></p>"; message "変換しました。"; } ------------------------------------------------------------ どうぞよろしくお願いいたします(T_T)

  • お勧めのエディタを教えてください。

     掲題のとおり、お勧めのエディタ・お勧めの使用方法等ありましたら、教えてください。以下のような優先順を設定しています。 1. 無料であること。 2. 検索/置換/ルーラー表示等、一般的な機能はあること。 3. 背景色・文字色等が任意設定できること。 4. 選択範囲のうち、全角英数/英記号(0-9, =, -, 括弧, a-z, /等)のみを半角に1回の操作で変換できること。正規表現を利用してもよい。 5. 選択範囲のうち、半角カタカナのみを全角に1回の操作で変換できること。正規表現を利用してもよい。  2, 3については多くのエディタで実装されているので、実質的には、1, 4, 5が主要な障害になると思います。当方は秀丸・サクラ・EmEditorの使用経験がありますが、一長一短です。 H: 秀丸の欠点 H1: 長期にわたって無料で使用できない。 S: サクラエディタの欠点 S1: 全角から半角に変換する場合に、英数字のみの半角化は可能だが、括弧が変換されない。 E: EmEditorの欠点 E1: 全角から半角に変換する場合に、空白・カタカナ・句読点まで半角になってしまう。  現状では、サクラエディタで、英数字のみ半角化した後、置換機能で括弧を半角に変換することにしています。それ以上に簡便な方法がありましたら、教えていただくと幸いです。

  • 秀丸にて、任意の5桁数字を除去したい

    秀丸にて、 (12345) (12333) (32456) のように、(数字は適当です)半角()で括られた任意の5桁数字を一括で除去したいと思っていますが、ヘルプで正規表現を見ながらトライしてもうまくいきませんでした。 良い方法をご教授願います。

  • 正規表現で一括置換

    現在、数多くの長文データを、テキストエディタの置換機能で一括置換しています。 jeditX(または秀丸エディタ)の正規表現をもちいた複数一括置換について質問させていただきます。 私は正規表現やPC言語の初心者です。どうぞよろしくお願いいたします。 かなり困り果てております。どうぞ、正規表現にくわしいかた、よろしくお願いします。 一二三『一二三にそれぞれ♪マーク』 という文章に対して 一♪二♪三♪ という一括置換をすることには成功しました。 こう書いています。 ■検索文字列 (.{1,1})(.{1,1})(.{1,1})『(.{1,1})(.{1,1})(.{1,1})にそれぞれ♪マーク』 ■置換文字列 \1♪\2♪\3♪ これでぶじ、以下のように一括置換できました。 一♪二♪三♪ 現実には傍点や圏点をふっているんですが、判りやすく♪マークにしています。 この調子で長い文章も変換できていて満足していたのですが…… しかし代入文字が10個以上になったとたんに、まったく動きません。 ■置換したい文章 一二三四五六七八九十『一二三四五六七八九十にそれぞれ♪マーク』 ■検索文字列 (.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})『(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})にそれぞれ♪マーク』 ■置換文字列 \1♪\2♪\3♪\4♪\5♪\6♪\7♪\8♪\9♪\10♪ こうやると、置換後の文章は以下のようになってしまいます。 一♪二♪三♪四♪五♪六♪七♪八♪九♪一0♪ 10個目以降の数字が、正しく機能してくれません。 \10  という正規表現の書き方は 「一番目の値を参照して、それから数字の0を記入しなさい」 という意味になってしまうようです。 わたしは十番目の値を代入してほしいだけなんです。 \1 や \2 や \3 といった代入文字のように \10 や \11 を機能させる、正しい表記をご教授ください。よろしくお願いいたします。 ちなみに以下のように書いてもダメでした……。 \1\0 グーグルで1日中検索しても判りませんでした。jeditXの複数一括置換でこれをなんとかしたいのです。ご存じの方、どうぞ教えてください。よろしくおねがいします! 秀丸エディタをご利用で、正規表現にくわしい方も、ぜひヒントを出していただければと思います。

専門家に質問してみよう