• ベストアンサー

Excelマクロ 途中まで作成したマクロの修正をお願いします

Excelマクロ 途中まで作成した下記のマクロの修正をお願いできませんでしょうか。 【マクロ-途中 説明】 全シートのアクティブセルを「A1」にして、最後に左端のシートにして終了。→ファイル保存時、見栄えを良くするために使用 【修正点】 アクティブセル「A1」に移動を変更。 B列の一番下から「END+↑」でとんだ位置で止まる。 複数のシート(20以上)を同じ作業(ブック内の全シート) 同じく最後に一番左端のシートでをアクティブシートにして終了 ※A列は空白行のため、必ず埋まっているB列を基準にしたい 上記の【修正点】を下記の【マクロ-途中】に反映したい。 ↓ 【マクロ-途中】 Sub 全シートをHOMEポジションに() Dim ws As Variant For Each ws In Worksheets If Sheets(ws.Name).Visible = True Then Sheets(ws.Name).Select Range("A1").Select End If Next Sheets(1).Select End Sub

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

  • ベストアンサー
  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.3

#2です。 記述したコードは試していただけましたか? やりたい事はやれているように思えるのですが。 問題があるならどういう現象になるかを補足していただけませんか?

yasuhiko2001
質問者

お礼

お返事遅くなりまして申し訳ありません。 想像していたもの寸分たがわぬマクロでした。 毎日利用させていただいております。 ありがとうございました。

その他の回答 (2)

  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.2

>アクティブセル「A1」に移動を変更。 >B列の一番下から「END+↑」でとんだ位置で止まる。 文章に矛盾が・・・ アクティブセル「A1」への移動を変更し、B列の一番下から「END+↑」にしたい と読み替えたとすれば、 Range("A1").Select を Range("B" & Range("B65536").End(xlUp).Row).Select にすればOKな気もします。 画面のスクロールも変更したいならNo.1さんの案で大体OKで、 ActiveWindow.ScrollRow = Range("b65536").End(xlUp).Row ActiveWindow.ScrollColumn = 2 こんな感じでどうでしょうか

yasuhiko2001
質問者

補足

お返事ありがとうございます。 >アクティブセル「A1」に移動を変更。 >B列の一番下から「END+↑」でとんだ位置で止まる。 文章に矛盾が・・・ その通り、矛盾していました。 下の補足にも追加しましたが、 ・いったん「B65536(最終行)」に飛び、そこから「END+↑」で、「B列のデータの埋まっている最終行」に移動します。 ・他の方法で、上記の作業がマクロ化できれば、そちらでも可です。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

>B列の一番下から「END+↑」でとんだ位置で止まる。 が良く分からなかったので、とりあえず Sub 全シートをHOMEポジションに() Dim ws As Variant For Each ws In Worksheets If Sheets(ws.Name).Visible = True Then Sheets(ws.Name).Select Range("A1").Select ActiveWindow.ScrollRow = Range("b65536").End(xlUp).Row End If Next Sheets(1).Select End Sub

yasuhiko2001
質問者

補足

お返事ありがとうございます。 (1)イメージとしては、B1からD100までセルが数字で埋まっているExcelがあるとします。 (2)この場合、アクティブセルを「B100」にしたいのですが、毎回データの量が異なるため、アクティブセルの行数がかわります。 (3)そこで、いったん「B65536(最終行)」に飛び、そこから「END+↑」で、「B100」に移動します。 (4)以上が、修正したい部分となります。他の方法で、上記の作業がマクロ化できれば、そちらでも可です。

関連するQ&A