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

秀丸マクロの作成方法

Bo_Boの回答

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

#2, #3, #4 です。 ■これは、回答ではなく中間報告とお詫びです。 “log01.txt”、“log02.txt”を、各々10万行を超える内容として検証し てみました。 その結果、「応答が帰ってこない」旨のエラー・メッセージが表示され、 マクロが正常に動作しません。 「ファイル名が有効ではありません。  動作環境のワイルドカードの指定が正しいか確認してください。」 とは異なるエラーですが、「巨大なログが大量にある」状態では使用しない でください。 詳しく調査する時間がないので、改善策や原因を提示できません。最初から 「巨大なログが大量にある」と仰っているのに、そのような検証もせず投稿 したことをお詫びします。 因みに、千数百行のファイルが10個程度なら動作することを確認しました。 中途半端な回答をしたことに責任を感じております。 時間がかかることを暇ないなら、次の回答をお待ちください。 そうでないなら、私の発言を全てお忘れください。 --------------------------------------------------------------- ※「Rubyを利用する」と言うのは、駄目かな~ -- pickup_log.rb -- #!ruby -Ks fword = /11025490.*Single Step Transfer|Single Step Transfer.*11025490/ Dir.glob("*.txt"){|file| open(file){|f| while line = f.gets print line if fword =~ line end } } コマンドプロンプトから C:\temp2>ruby pickup_log.rb > 出力.txt

rio_grande
質問者

お礼

Bo_Boさん、ご回答有難うございます。 なるほど。。メッセージが異なるのは気になりますが、私のローカルにあったテキストファイルは、50万行を超えるファイルが10個でした。。 お詫びなんてとんでもないです。 こんなに親切に教えていただけただけで十分です。 Bo_Boさんもお手数ですから、調べて頂かなくても大丈夫です。。ファイル名指定でやってみます。 Rubyは敷居が高いですが、時間があればやってみようと思います。 有難うございました。

rio_grande
質問者

補足

Bo_Boさん、Rubyをやってみました! 結果、何の不具合もなく一発で綺麗に出力できました! 有難うございます! 本当に助かりました。。。 秀丸の件は、気になさらずに。。。 宜しくお願いします。

関連する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 宜しくお願いします。