秀丸エディタのマクロを使って以下の処理を行おうとしました。
1.検索した文字の一行下の行をコピーし、
そのコピーした行末にコピーしたデータを貼り付ける。
2.最初に検索した文字に該当する次の文字の一行下の行をコピーし、
そのコピーした行末にコピーしたデータを貼り付ける。
(繰り返し。)
3.文末(EOF)まで2.の処理を繰り返す。
以下のマクロを作ってみました。
while(code != eof){
setcompatiblemode 15;
searchdown "検索文字" , hilight;
down 1;
copyline;
paste;
finddown;
すると、2.の処理まで正常に実行されるのですが、
検索文字がなくなった時点で2の処理がストップされる事がなく、
それ以降の行のすべてが文末(EOF)まで、コピー&ペーストの処理が
繰り返されます。
例:______________________________________________________
(元の文)
○○
×××
△△
■■■
○○
□□□□
☆☆
(検索する文字)
○○
(マクロ実行後の文)
○○
×××
×××
△△
■■■
○○
□□□□
□□□□
☆☆
☆☆
______________________________________________________
上記の例でいうと、(元の文)の☆☆の部分が、(マクロ実行後の文)で
☆☆
☆☆
となってしまってます。
この部分を
☆☆
のままにしたいのです。
マクロをどのように組めば実現できるのでしょうか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
以下のようにしてください
----------------------------------------------------
setcompatiblemode 15;
//ファイルの先頭へ移動(カーソルがどこにあっても良いようにするため)
gofiletop
searchdown "検索文字" , hilight;
while(1){
if (result == 0) { break;}
//行頭へ移動(しないと正しくコピーできない)
golinetop;
down 1;
copyline;
paste;
finddown;
}
------------------------------------
不明点は、聞いてください。動作確認済みです。
No.1
- 回答日時:
searchdownの実行のあとの行で、検索対象が見つかったかどうかを
チェックすればよいのでは?
マクロヘルプから
成功したかしなかったかによって結果コードを返します。結果コードはresultキーワードで参照することができます。
成功した場合は1(TRUE)になり、失敗した場合は0(FALSE)になります。
この回答への補足
マクロの文の組み方がわかりません。
今回の場合、どのような文になるのでしょうか。
因みに先ほどの文で記載間違いがあったので訂正させていただきます。
finddown;の後の
}
が入ります。
以上、よろしくお願いします。
マクロヘルプを見て以下に書き換えてみましたが上手くいきません。
while文を使うのでしょうか。どのような文になるのでしょうか。
searchdown "検索文字/" , hilight;
down 1;
copyline;
paste;
finddown;
if( result == 0 ) {
endmacro;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Activesheet.Pasteで困っています 1 2023/01/22 07:41
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) スプレッドシートのマクロで値の入力があるセルの範囲を指定する方法を教えて下さい 2 2022/04/05 17:29
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
Excel_マクロ_現在開いているシ...
-
Excel マクロでShearePoint先の...
-
エクセルに張り付けた写真のフ...
-
特定文字のある行の前に空白行...
-
ExcelのVBA。public変数の値が...
-
wordを起動した際に特定のペー...
-
エクセルで縦に並んだデータを...
-
EXCELマクロでのThisisWor...
-
ExcelVBAでPDFを閉じるソース
-
Excel VBAからAccessマクロを実...
-
エクセルで別のセルにあるふり...
-
エクセルマクロでワードの一ペ...
-
エクセル マクロ 指定日の指定...
-
ソース内の行末に\\
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
Excel VBAからAccessマクロを実...
-
Excel_マクロ_現在開いているシ...
-
マクロ実行時、ユーザーフォー...
-
エクセルで別のセルにあるふり...
-
ソース内の行末に\\
-
特定文字のある行の前に空白行...
-
マクロで空白セルを詰めて別シ...
-
wordを起動した際に特定のペー...
-
【EXCEL VBA】オートシェイプを...
おすすめ情報