- ベストアンサー
EXCEL VBA 空欄セルがあると左端をセレクトしてくれません
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
行の左端ということは列を問題にしているのですよね。 であれば 空白も含めて一番左の列を捕らえるのは (1)A列から (2)End(xlRight)を 問題にすべきではないでしょうか。 Sub test01() r = ActiveCell.Row MsgBox r c = Worksheets("Sheet1").Cells(r, "A").End(xlToRight).Column MsgBox c Cells(r, c).Select End Sub
その他の回答 (1)
- hana-hana3
- ベストアンサー率31% (4940/15541)
>途中1つでも空白セルがあると それが仕様なので、途中の空白を飛ばしたい場合には別な方法で行う必要があります。 Cells(ActiveCell.Row, 256).End(xlToLeft).Select つまり、一番左端のセルから右側にジャンプさせます。
関連するQ&A
- VBAでセルの移動方法
エクセルのVBAでセルが何処にあっても、その行の一番左端の列に移動するようにしたいのですが(行は変えずに列だけ)、どうすれば良いのでしょうか? Selection.End(xlToLeft).Select と打ってみたのですが、一番左まで行かず、途中の空白行等で止まってしまう事があります。 どなたか教えて頂けませんか。
- ベストアンサー
- オフィス系ソフト
- セルを選択するマクロ(エクセル)
Sub test() x = ActiveCell.Row y = ActiveCell.End(xlToLeft).Column z = ActiveCell.End(xlToRight).Column Range(Cells(x, y), Cells(x, z)).Select End Sub アクティブセルが含まれている行のみで、データが入力されている連続したセルを選択状態にするマクロとして、上記を考えました。 上記を違った形でもっと簡潔に表すことは可能でしょうか?
- ベストアンサー
- オフィス系ソフト
- VBA アクティブセルに対しての作業に関して
-質問内容-VBA作成2つ- ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate アクティブセルを指定した段階で オフセット(縦下方向にO1991のセルに入れた数値分下に、ヨコに0) 移動しアクティブセルにする ------------------------------------------------------ ------------------------------------------------------ 別々のVBAでやりたいこと (1)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下にペースト(貼り付け) したい 例) A 1 成功 ←アクティブセルをコピー 3 成功 ← ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate アクティブセル~オフセットしたセルまでを最初にアクティブセルからコピーし →アクティブセル~オフセットしたセルまでペーストする ----------------------------------------- (2)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下に アクティブセル~オフセットされたセル位置まで フィルダウンさせたい 例) A 1 1 ←アクティブセルをコピー 5 ←オフセットセル 2つのVBAのやり方/プログラムの表記/組み合わせ方を 無知で愚かな私ですが どうかご教授のほど 宜しくお願い致します (>_<)謝↓ペコッ --------------------------------------- --------------------------------------- 変数を使うのでしょうか? セル範囲を指定するとして Range("ActiveCell:ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Active") となるのでしょうか? 又変数の使い方として Dim a As Range 又は Dim a As Objectになるのでしょうか この際代入として使うには a = ActiveCell b = ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate になるのでしょうか 本当に度々申し訳ないのですが 宜しくお願いします (:>_<:)ペコリ Range(ActiveCell).copy ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0)ActiveCell.PasteSpecial End Sub
- ベストアンサー
- Excel(エクセル)
- VBA アクティブセルに対しての作業に関して
-質問内容-VBA作成2つ- ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate アクティブセルを指定した段階で オフセット(縦下方向にO1991のセルに入れた数値分下に、ヨコに0) 移動しアクティブセルにする ------------------------------------------------------ ------------------------------------------------------ 別々のVBAでやりたいこと (1)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下にペースト(貼り付け) したい 例) A 1 成功 ←アクティブセルをコピー 3 成功 ← ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate アクティブセル~オフセットしたセルまでを最初にアクティブセルからコピーし →アクティブセル~オフセットしたセルまでペーストする ----------------------------------------- (2)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下に アクティブセル~オフセットされたセル位置まで フィルダウンさせたい 例) A 1 1 ←アクティブセルをコピー 5 ←オフセットセル 2つのVBAのやり方/プログラムの表記/組み合わせ方を 無知で愚かな私ですが どうかご教授のほど 宜しくお願い致します (>_<)謝↓ペコッ --------------------------------------- --------------------------------------- 変数を使うのでしょうか? セル範囲を指定するとして Range("ActiveCell:ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Active") となるのでしょうか? 又変数の使い方として Dim a As Range 又は Dim a As Objectになるのでしょうか この際代入として使うには a = ActiveCell b = ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate になるのでしょうか 本当に度々申し訳ないのですが 宜しくお願いします (:>_<:)ペコリ Range(ActiveCell).copy ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0)ActiveCell.PasteSpecial End Sub
- ベストアンサー
- Visual Basic
- Excelマクロ:変数でセル範囲指定
マクロの迷い人です。 Excelの表をマクロで印刷しようと思っています。 行の数が毎回違うため、最終セルもその都度指定しなければなりません。 A1 B1 A2 B2 A3 B3 A4 B4 この例で、A5 B5 以降は空セルとします。 印刷範囲を Range("A1:B4")と書かずに、そのときどきのアクティブセルを変数に代入し、変数を使って範囲指定したいのです。 Sub MacroTest () Dim a As Variant Dim b As Variant Range("B1").Activate Do While a <> 0 ActiveCell.Offset(1, 0).Activate '空白でなければ一つ下に移る a = ActiveCell.Value Loop ActiveCell.Offset(-1, 0).Activate '上の行に移る b = ActiveCell.Value Range("A1:"& b).Select End Sub こうしてみましたがダメでした。 デバッグの方法がわからないので教えて下さい。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelマクロ セルを行頭に移動
マクロの初心者です。 Excelで、ActiveCell が行の途中(たとえば B12 など)にある場合、 Selection.End(xlToLeft).Select を2回続けると B1 に移れますが、途中に空のセルがある場合にはうまくいきません。 どんな場合にも、どの行でも、行頭セル *1 にもっていくにはどう記述したらよいのでしょうか。 教えて下さい。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAで複数のセルの操作
コマンドActivecell.Valueという指定の仕方ってありますよね。でもアクティブなセルをCtrlボタンで複数にするとこのコマンドでは操作できないですよね。 たとえばアクティブセル(内容:文字列)をちりばめて、そのすべてに"氏"とつけるマクロを作りたいのですが、どうすればいいのでしょうか。 分厚いVBA辞典を買ったのですが、載っていないもので…
- ベストアンサー
- オフィス系ソフト
- エクセル VBA アクティブセルから移動する
アクティブセルへ入力し、エンターを押すと右隣のセルへ移動するように Module 1へ Sub セル() ActiveCell.Offset(0, 1).Select End Sub と、入れましたが、エンターを押すと、下のセルへ移動してしまいます。 どこを直せばいいでしょうか?
- ベストアンサー
- Excel(エクセル)
- EXCELでENTERキーでセルの移動マクロ
こんにちは。 EXCELでENTERキーでセルの移動マクロを使いたいのですが、下記のマクロで改良を教えてもらいたいと思います。 まず、最初は必ず、セルB5にフォーカスしたいということ。そうして、できればOFFSETを使わないで、rangeかcellを使いたいのですが、お願いします。 Sub セル移動() Range("B5").Select Select Case ActiveCell.Column Case 1 ActiveCell.Offset(1, 1).Activate Case 2 ActiveCell.Offset(2, 2).Activate Case 3 ActiveCell.Offset(1, 1).Activate Case 4 ActiveCell.Offset(1, 1).Activate End Select End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルVBA
アクティブ「セル」のある「行」をコピーし、そのアクティブセルの下へ挿入するマクロに、複数「セル」を選択している場合は、複数行を挿入するように追記するには、どうしたらいいでしょうか? Sub Macro1() Rows(1).Copy ActiveCell.EntireRow.Insert Shift:=xlDown Application.CutCopyMode = False ActiveCell.EntireRow.Hidden = False End Sub よろしくお願いします。m(_ _)m
- ベストアンサー
- Excel(エクセル)
お礼
ありがとうございました。参考になりました