秀丸エディタのマクロを使って以下の処理を行おうとしました。
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を探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・ちょっと先の未来クイズ第5問
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
メッセージボックスのOKボタ...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
Excel マクロでShearePoint先の...
-
エクセルに張り付けた写真のフ...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
Excel_マクロ_現在開いているシ...
-
TERA TERMを隠す方法
-
wordを起動した際に特定のペー...
-
ExcelVBAでPDFを閉じるソース
-
マクロ実行時、ユーザーフォー...
-
エクセル VBA実行中のApplicati...
-
#defineの定数を文字列として読...
-
エクセルのマクロをセルの値に...
-
VBAにて別ワークブック上の実行...
-
VB初心者です。メールから添付...
-
Excelのマクロボタンをダブルク...
マンスリーランキングこのカテゴリの人気マンスリー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】オートシェイプを...
おすすめ情報