• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで行を非表示にするとアクティブなセルが・・・)

エクセルで行を非表示にするとアクティブなセルの移動方法について

このQ&Aのポイント
  • エクセルで行を非表示にすると、アクティブなセルの位置がわからなくなり、マクロでアクティブなセルを移動しようとするとエラーが発生します。
  • 問題のコードでエラーが発生している部分は、ActiveCell.Offset(0, -6).Selectです。
  • セルを移動するためには、非表示になっていない次の行のセルを選択する必要があります。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

うーん、どうしようとしているコードかわからないが、 エラーが出るのはわかる。 ActiveCell.Offset(0, -6).Select で、 列位置を -6 できないからだ。 もともとActiveCellがD3だから列は4だ。 ActiveCell.Offset(0, -6).Select にくるまでに、たぶん ActiveCell.Offset(1, -3).Select で、-3しているから ActiveCell.Offset(0, -6).Selectにきたときは列は1だろう。 もうあとがない。 >どうすればセルを移動できるでしょうか? 移動はできないよ。 それから、こういう書き方もあるのかもしれないが、ちょっと変えたほうがいいんじゃないか。 if,elseifで、みんな同じ条件を取っている。ActiveCellは変わっていくとしてもね。

asitano
質問者

お礼

回答ありがとうございます 説明不足 申し訳ございませんでした ご指摘の通り(0、-3)(0、-6)はあとがなくなっていました またよく見直したら、全然だめなことに気がつきました。 Sub 非表示() 行 = 3 列 = 4 While Cells(行, 列 - 2) <> "" If Cells(行, 列) = "" And Cells(行, 列 + 3) = "" And Cells(行, 列 + 6) = "" Then Rows(行).EntireRow.Hidden = True End If 行 = 行 + 1 Wend End Sub で解決しました ありがとうございます