• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:秀丸マクロの作成方法)

秀丸マクロの作成方法

Bo_Boの回答

  • Bo_Bo
  • ベストアンサー率65% (97/149)
回答No.2

下記のマクロで、質問文の条件では動作すると思います。 参考になれば幸いです。 ●検索オプション   検索オプションは、「オプションなし」の状態で検索しています。   大文字小文字の区別や単語単位、正規表現などで検索するには、   それようのフラグを記述しなければなりません。それらは、   ・「秀丸エディターヘルプ」の「秀丸起動時のオプション」の /g 項目   ・「マクロヘルプ」の「grep」項目   を参照してください。 ●検索するファイル($findType)の指定方法   ログファイルの拡張子が .log で、   格納ディレクトリ・パスが c:\foo\bar\log なら、   $findType = "c:\\foo\\bar\\log\\*.log";   となる。   円記号(\)が二重になっていることに注意! ●検索キーワード   検索キーワードに二重引用符や円記号など、特殊な文字を含める場合は、   「マクロヘルプ」の「式について」→「文字列」を参照してください。 ●秀丸の話題   秀丸についての質問などは、   「秀シリーズサポートフォーラム」http://www.maruo.co.jp/hidesoft/   に投稿した方が、迅速、丁寧です。   そこの常連さんは親切な人が多いので、訪問することをお勧めします。   このマクロを持っていって、『こう改造したいけどどうするの?』   でも良いですよ。   「秀丸エディタ マクロ作者会議室」http://www.maruo.co.jp/hidesoft/4/ //== ▼マクロここから ========================================= $findType = ""; // 検索するファイル $keyword1 = ""; // 1回目の検索キーワード $keyword2 = ""; // 2回目の検索キーワード //-- 上記3つを設定後に実行すること --------------------------- $sb = searchbuffer; #so = searchoption; $rb = replacebuffer; #parentHD = hidemaruhandle(0); openfile "/h /g,\"" + $findType + "\"" + $keyword1; #hd1 = hidemaruhandle(0); if( code == eof ) call NoMatch #hd1, "1"; replaceallfast "^[^:]+: +", "", regular; localgrep $keyword2, icon; #hd2 = hidemaruhandle(0); if( code == eof ) call NoMatch #hd2, "2"; replaceallfast "^[^:]+: +", "", regular; gofiletop; clearupdated; closehidemaruforced #hd1; setsearch $sb, #so; setreplace $rb; message str(linecount2-1) + " 行を抽出しました。"; SAVEAS; endmacro; NoMatch: setactivehidemaru #parentHD; closehidemaruforced ##1; setsearch $sb, #so; setreplace $rb; message $$2 + " 個目の検索キーワードにマッチなし!"; endmacro; //== ▲マクロここまで =========================================

関連するQ&A

  • 秀丸マクロについて質問です。

    秀丸マクロについて質問です。 秀丸で編集されたテキスト文書の中でabcdefgという文字列がある行を検索し、 その行情報を取得し、その行の隣にある文字列(下記の例では123456)を返す にはどのようにすればよいでしょうか? ご回答よろしくお願いします。 (例) 567行目に以下の文があるとします。 abcdefg,123456,goukaku

  • エクセル2003のマクロ作成の件

    同一連続セルにあるグループの中で、D列に「完了」があれば、F列に「4」を入力し、その同一連続セル内で、検索し、D列の対応中を探します。その「対応中」の先頭が、完了にした担当者と同じであれば、「9」を。違えば、「0」を。完了は、同一セル内の最後にきていない事もあります。該当しない時や単一セルの時は、何もせず、空白のままにします。A列には、空白行がなく、3万行ほどあります。特定文字を探し、その1行上を探すなどののマクロはできるのですが、条件が重なると、作成が出来ません。今まで、手動で、数値を入れていたのですが、マクロで作成出来ないものでしょうか?マクロ初心者です。

  • エクセルのマクロの作成について

    エクセルのマクロの作成について教えてください!! 一つのセルの中に3行の文字があるとして・・・・ そのセルの2行目と3行目を隣のセルにうつしたいです。 例えば・・ E列の1行目のセルに あいうえお かきくけこ さしすせそ と文字が入っていて、 それを F列の1行目のセルに かきくけこ さしすせそ のみ移動させたいです。 1行~300行ほどあって、さらにデータは増え続けます、手作業での移行が困難になってきました。 そもそも一つのセルの中身の文字の一部を違うところに移動させるマクロは組めるのでしょうか。 当方初心者です。お手柔らかにお願いします。

  • かんたんなエクセルマクロを教えてください!

    エクセルマクロを勉強しはじめたばかりのものです。 列にある、様々な文字列で、同じ名前があったときに、 その個数を出すようにするにはどうしたらよいでしょうか? 【例】   C 1名前 2りんご 3メロン 4いちご 5りんご 6レモン 7メロン 8すいか 9メロン 10空白 Cの列に様々な名前の品物があります。そのときに、行の2~9(9はもっと長いときがあり、制限のないものとします) の中の文字列で、同じものがあったときに、その名前と個数を出すようにしたいのです。(C1は見出しなので省きます) 上記の例でしたら、「りんご」が2個、「メロン」が3個あります。2個、3個という数えた個数はB列の同じ場所の一番上に上書きで 出す形で結果を表示したいと思います。例でいえば、「りんご」は2個だったので、B2に「2」と出力。メロンは3個だったので、 B3に「3」と出力させたいのです(B列にはすでに他の文字列が入っています。それを数値で上書きします。) C列をたどって、同じ文字がないときには、「同じものはありません」とメッセージボックスで出力するようなマクロです。 例ではC9までですが、このケースではC10は空白になります。C100まであったときにはC101が空白です。 こんなカンタンなのもわからないので、ぜひお教えいただけますでしょうか?できるだけ短いものが嬉しいです。使っているエクセルはおはずかしながらEXCEL97です。 よろしくお願いします。

  • TeraTermマクロの連携について

    TeraTermにて出力されたログファイル内の文字列を検索し、コピー。 コピーした文字列をTeraTermマクロ内にてペーストする処理を考えております。 具体的な処理は以下の通りです。 1.何らかのスクリプトファイルを実行し、TeraTermのログファイルを自動で開く。 2.ログファイルの中身から文字列を検索、コピー 3.TeraTermマクロが自動起動。 4.マクロ内にてコピーした文字列をペースト。 これをwindows上で実行したいと考えています。 事実上可能でしょうか? もし可能でしたら、TeraTermマクロと何を組み合わせることによって 当条件をクリアーできますでしょうか? ほか、必須条件等ありましたら教えてください。 よろしくお願いします。

  • 秀丸エディタ・マクロの質問です

    秀丸エディタを使用して、以下のマクロの作成のやり方を教えてください。 元ファイルから必要なデータの抽出・計算を繰り返して下記の例のような形式で表示したいです。 (ここではAAAAA・BBBBB・CCCCC・DDDDD・hijkの表記のある行を抽出し、 「BBBB-AAAAA+1」「DDDDD-CCCCC」の結果をかかった時間1:、かかった時間2:の横に表記する。 これらの作業を10000件以上繰り返す。 ------------------------------------------------ 例)元ファイル 2013/3/6 10:10:10.100 AAAAA 2013/3/6 10:10:10.110 BBBBB 2013/3/6 10:12:12.120 hijk 2013/3/6 10:14:14.140 CCCCC 2013/3/6 10:14:14.150 DDDDD 2013/3/6 10:15:15.130 abcde 2013/3/6 10:15:16.100 AAAAA 2013/3/6 10:15:16.108 hijk 2013/3/6 10:15:16.110 BBBBB 2013/3/6 10:15:18.150 lmn 2013/3/6 10:15:19.140 CCCCC 2013/3/6 10:15:19.150 DDDDD … …(省略:10000行以上) … 2013/3/6 11:18.20.150 DDDDD ------------------------------------------------ 例)ほしい結果 2013/3/6 10:10:10.100 AAAAA 2013/3/6 10:10:10.110 BBBBB 2013/3/6 10:12:12.120 hijk 2013/3/6 10:14:14.140 CCCCC 2013/3/6 10:14:14.150 DDDDD かかった時間1:11msec(2行目-1行目+1) かかった時間2:10msec(5行目‐4行目) 2013/3/6 10:15:16.100 AAAAA 2013/3/6 10:15:16.108 hijk 2013/3/6 10:15:16.110 BBBBB 2013/3/6 10:15:19.140 CCCCC 2013/3/6 10:15:19.150 DDDDD かかった時間1:11msec(9行目-7行目+1) かかった時間2:10msec(12行目‐11行目) … …(省略:10000行以上) … ------------------------------------------------ 現状で以下の2つのマクロを作成しました(元ファイルで実行します) マクロ1.「AA…~DD…」を含む行の抽出+「かかった時間1:、かかった時間2:」の表記をDDDDDの下に挿入するマクロ マクロ2.時間のみの抽出を行うマクロ(下5ケタのみ 例:10100 小数点は削除) これら2つのマクロを同時に動かし、最終的に上記のような形式にまとめる予定です。 (もしかしたら1つのファイルで動かせるのかもしれませんが、わからなかったので二つにわけました;;) 現在、マクロ2.で抽出した時間からどのようにして「BBBB-AAAAA+1」「DDDDD-CCCCC」を 行えばいいか、また、計算した値をどのようにして「かかった時間1:、かかった時間2:」の 横においていけばいいかがわからない状態です。 マクロ自体さわったことがなく、もう一週間悩んでいます。 どなたか馬鹿な私に教えていただけないでしょうか

  • 秀丸を使ったマクロでなんとかならないでしょうか。。

    秀丸を使ったマクロでなんとかならないでしょうか。。 次のような文が書かれたテキストから、 ==== ここから ==== 日曜 犬 月曜 図書館 火曜 散髪 ==== ここまで ==== 次のような文に書き換えたいと思ってます。 ==== ここから ==== 日曜 犬 日曜は犬を、 散歩に連れて行く。 月曜 図書館 月曜は図書館で、 本を読む。 火曜 散髪 火曜は散髪にいく。 ==== ここまで ==== “日曜”を(キーワードA)とすると、“日曜”の次の行の任意の文字列(ここでは犬)を、 次のように代入した文章を(キーワードA)の2行下に追加で書き出すようにしたいんです。 (キーワードA)は(犬)を、 散歩に連れて行く。 上の文章は、仮に(文章A)としてマクロのどこかに記載しないと いけないとかと思いますが。。 同様に、“月曜”を(キーワードB)とすると、図書館は(キーワードb)、 次の文章は(文章B)として考えてます。 そうすると、テキストファイルの例だと構成要素は、 ==== ここから ==== (キーワードA) (キーワードa) (キーワードB) (キーワードb)    ・    ・ ==== ここまで ==== となる感じです。

  • 【秀丸マクロ】IFの使い方

    秀丸マクロでの、IFの使い方が分かりません…。 秀丸でCSVデータの編集をしています。 "文字列1","文字列2","文字列3","文字列4","文字列5", のうち、文字列4だけを見て、条件に合致するものは『行ごと』削除したいんです。 調べて調べて、やっとこ↓までは書いたのですが、 gofiletop; while( code != eof ){ searchdown "^\"((.*?)\",){4}\"(.*?)\"(?\\1)"; deleteline; } IFがないので、これではぜーんぶ消えてしまいます。(苦笑) IFをどういった方法で追加すればよいのか、教えてください。 よろしくお願いします。

  • Excel2007でのマクロの設定について

    Excelのマクロについて質問です。 Excel2007でマクロを設定したいのですが以下の作業はマクロ化出来ますか? 1.特定の文字列を含む行の削除   例:(D11に特定の文字列があった場合、11行を全て削除する) 2.特定の文字列を含む行のうち、一部セルの変更   例:(A列に日付、B列に名前、C列に金額がある場合、B列を検索して該当した名前の列の日付のみ既存の日付の前日にする)   また、これは同時に複数の検索が出来ますか? ご回答お待ちしております。

  • 秀丸のマクロ

    教えて下さい。 Solarisの資源を取得したテキストファイルがあります(iostat、sar、vmstat)。 エクセルでグラフ化したいのですが、コンマが挿入されていないため綺麗に表示できません。 文字列と文字列の間のスペース(n個)はカットし、コンマを一つ入れるように秀丸で編集したい場合、どのようにマクロを作成すればよいか教えて下さい。 例) <生データ> tty sd0 sd1 tin tout kps tps serv kps tps serv kps 3 1 461 19 19 460 18 19 0 0 <マクロ実行後> tty,sd0,sd1 tin,tout,kps,tps,serv,kps,tps,serv,kps 3,1,461,19,19,460,18,19,0 宜しくお願いします。