
■ ”アクティブセルの、1個下の行を選択し、新しい空白行を一行挿入”
■次にその”アクティブセルのA列とB列の値を、
新しく作った空白行に、コピー
・・・といったマクロを組もうとしております。
たとえば
12行目を選択するプログラム(コマンド?マクロ?)は、
Rows(12:12)
となっていたので、それにならって
Rows(activecell:B) などとやってみたのですが、うまくいきませんでした。
このような場合、どうしたらよいのかアドバイスをいただけると助かります。
どうぞ、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
行の指定は
「Rows(行数)」
で行います。
例えば、5行目を選択するのであれば、
Rows(5).Select
で動作します。
また、()内は変数で指定することが可能です。
選択しているセルの行数を取得するには下記のように行います。
現在選択しているセルは…「ActiveCell」
行の数値を取得するには…「.Row」
つまり、ActiveCell.Row と記述することで現在の行数を取得できます。
その値をRows()に入れてあげます。
Sub RowsInsert()
Dim RowsNo As Long
RowsNo = ActiveCell.Row + 1
Rows(RowsNo).Select
Selection.Insert Shift:=xlDown
Cells(RowsNo, 1) = Cells(RowsNo - 1, 1).Value
Cells(RowsNo, 2) = Cells(RowsNo - 1, 2).Value
End Sub
Selectを用いた処理は時間がかかる要因になりますが、
長文で使用しないようですし、この程度の処理であれば動作に問題ないと思います。
Cells(RR, 5) = Cells(RR - 1, 5).Value
こちら、使わせていただきました・・・。
コピーをせずに、値を同じにできるのが嬉しいです…。
ご回答、どうもありがとうございました!
No.4
- 回答日時:
rowsとか使うとご相談のように操作しにくいです。
また「セルをコピーしたい」のか,値の転記(複写)をしたいのかなど,具体的なヤリタイコトによって書きぶりが変わります。
作成例:
activecell.offset(1).entirerow.insert
cells(activecell.row + 1, "A").resize(1, 2).value = cells(activecell.row, "A").resize(1, 2).value
No.3
- 回答日時:
みなさん、速いし手慣れておりますなぁ。
とても勉強になります。
Excel VBAで迷うのは、命令が似通っていて、どの命令がどういう動きをするのだったか、迷うことでしょうか。
下記のMacro1とMacro2は、セル選択状態の1行をコピーし、その1行下に行の複写挿入するマクロです。
どちらも同じ結果になりますが、コピーを実施した後の痕跡(コピー元が点線、セレクトしたセル・行・列が太枠)が微妙に異なります。
なぜそうなるのかを、考えてみるのも、ExcelVBAの動作の理屈を知る勉強になりますよね。
Sub Macro1()
Dim r As Long '行番号コントロール
r = Selection.Row 'セレクト状態のセル行番号を取得
Rows(r).Copy '行コピー
Rows(r + 1).Select 'r行目を行セレクト
Selection.Insert 'r行目に挿入
End Sub
------------------------------------------
Sub Macro2()
Dim r As Long '行番号コントロール
r = Selection.Row 'セレクト状態のセル行番号を取得
Range(r & ":" & r).Copy '行コピー
r = r + 1 '行番号に1加算
Range(r & ":" & r).Insert 'r行目に挿入
End Sub
No.2
- 回答日時:
こんにちは!
一例です。
Sub test()
Dim i As Long
i = Selection.Row
Rows(i + 1).Insert
Range(Cells(i, 1), Cells(i, 2)).Copy Destination:=Cells(i + 1, 1)
Rows(i + 1).Select
End Sub
※ 行すべてを選択いていますが、アクティブセルの1行下のセルを選択する場合は
>Rows(i + 1).Select
部分を
>Selection.Offset(1).Select
としてみてください。
参考になりますかね?m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBA
Excel(エクセル)
-
マクロでセルを1行下に移動する方法
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
アクティブになっている行をマクロで削除したい
Excel(エクセル)
-
5
Excel VBA アクティブセルからある一定のセルまでの範囲選択
Excel(エクセル)
-
6
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
-
7
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
8
エクセル マクロで数値が変った時行挿入できますか
Excel(エクセル)
-
9
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
10
VBA実行後に元のセルに戻りたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 上下で列幅を変えるには
-
結合されたセルをプルダウンの...
-
Excelのフィルター後の一番上の...
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル マクロで数値が変っ...
-
エクセルで特定の文字列が入っ...
-
Excel グラフのプロットからデ...
-
アクティブになっている行をマ...
-
Excelで非表示のセルをとばして...
-
セルではなく行や列、シート全...
-
A1に入力された文字列と同じ文...
-
[EXCEL]ボタン押す→時刻が表に...
-
Excelで行と列のガイドを出したい
-
Excel ウインドウ枠の固定をす...
-
エクセル マクロ オートフィ...
-
EXCELで最後の行を固定
-
excel セルの結合を条件付で自...
-
電話番号の入力方式が違うデー...
-
Excel VBA アクティブセルから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
Excelのフィルター後の一番上の...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロ オートフィ...
-
エクセル マクロで数値が変っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
結合されたセルをプルダウンの...
-
Excel グラフのプロットからデ...
-
excelのデータで色つき行の抽出...
-
excel 小さすぎて見えないセル...
-
A1に入力された文字列と同じ文...
-
EXCELで最後の行を固定
-
Excel ウインドウ枠の固定をす...
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
連続データが入った行の一番右...
-
エクセル2016で時間を入力して...
-
チェックボックスをクリックし...
おすすめ情報