• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vba 不揃いの行数にカーソル位置対応)

VBAの行数にカーソル位置対応

このQ&Aのポイント
  • VBAのコードを使用して、不揃いな行数にカーソル位置を対応させる方法について説明します。
  • 特定のシートで行番号が不揃いな場合、カーソルを適切な位置に移動させるためのVBAコードを提供します。
  • コード内で使用する範囲の変更にも対応するため、要件に応じて行番号を調整する方法も解説します。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 最初に、 >*N88BASICのプログラムに行番号を付けられたのですが **vbaではどうなんでしょうか?* VBEditor には、行番号は無視するような機能は残っています。ただ、VBEditor 自身で、番号を振る機能を持っていないのです。言い換えると、Goto ラベル(番号)機能が残っているわけです。あえて、番号を書く人がいますが、正直なところ、分かりにくいです。掲示板には、Goto 絶対禁止という原理主義者さんもいるようですが、あまり多用しなければよいと思います。(あまり読みやすいとは思いませんが) 私の持っている、"MZ-Tool" というVBAのユーティリティに、"Add Line Number" という機能はありますが、実際には使いません。 以下、ご質問の内容をまとめるとこのようなコードになります。 ステップモードで、一度、試してみると良いです。 なれないと、なかなか、このようには書けませんが、加工するのは簡単だと思います。 Value = Value で、値コピーになります。 '--------------------------------------- '標準モジュールのみ Sub gooR()   Dim sh As Worksheet   For Each sh In Worksheets 'シート全部     sh.Activate '(3)があるために、必要     With Range("A65536").End(xlUp)       .EntireRow.Copy .Offset(1) '(1),(2)       'A-Fまで 1列目~6列目       .Resize(, 6).Value = .Resize(, 6).Value       'BD-BG '56列目~その列含め4列目       .Offset(, 55).Resize(, 4).Value = .Offset(, 55).Resize(, 4).Value       '元の行から3行下       .Offset(3).Select '(3)     End With   Next sh End Sub >(3)次回及び 他のシートは不揃いの為 最後に記録の2段下にカーソルが来て欲しい (3) がなければ、このマクロは、もっとずっと速くループします。次回のことを考える必要がなければ、それは取り去ってもよいと思います。

haro-goo
質問者

補足

お世話になりました。 *Goto 絶対禁止という原理主義者 意味はわかります。当初利用して苦労しました。 今回は質問時に行番号で説明に使う予定でした。 またお会いする機会をーーーー。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >次回及び 他のシートは不揃いの為 最後に記録の2段下にカーソルが来て欲しい その元のコードからだと、A列から始まっているので、2段下でも、2段開けるようですから、Offset(3) のようです。 Range("A65536").End(xlUp).Offset(3).Select Selection.EntireRow.Select ということだと思います。Offset を使います。 ただ、そのコードの内容からすると、4行で納まりますね。 それと、このコードの内容ですと、文章で説明していただいたほうが、分かりやすいです。

haro-goo
質問者

補足

晩くまでお世話になります。 10/29の内容確認しました。有難うございます 改めて!! *作業用記録ブック 多数  *ブック壱に対してシート壱   *記録範囲は列A~BM  *行 11~ 300も有れば1500も有り?(不揃い)ここで悩んでいるのです。 **最後尾の行をその行の下にコピーする。次--最初の最後尾のA-F,BD-BGをマウスでA-Fコピー、形式を選択して貼り付け、値、OK、の順でBD-BGも同じにしている。 Rows("各シートに対応").Select '(1)-----次回及び 他のシートは不揃いの為 Selection.Copy Rows("各シートに対応").Select '(2)-----(1)が位置が変化するからここも対応 (A)---Range("A669:F669").Select '-----範囲の変更ありの予定 (B)---Range("BD669:BG669").Select '-----範囲の変更ありの予定 (A)はA~FをA~Gと変更予定ですがその時はコードを自分でかきなおしをします。(B)も同じ考え。 ご親切に!!!! 追)回答頂けるようでしたら  *N88BASICのプログラムに行番号を付けられたのですが **vbaではどうなんでしょうか?**   

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

こんな回答者にVBA弧オードを解読させるのでなく、何がしたいか文章で説明してもらえませんか。回答者はテストを受けているのではないはずです。 マクロの記録風そのままで、読みにくいし。 コピー張り付けしているようだが、どういうルール=基準で行を選んでいるのかとか。 >不揃いの行数 とは一定の間隔の行ではないということ?

関連するQ&A