No.1
- 回答日時:
新しい行を挿入した場合はわかりませんが、
コピーしたセルの挿入をする場合なら、
A1に=ROW() と入れ、
A2に 3 が入っているとして、
1行目を行コピーして2行目を右クリックし、
コピーしたセルの挿入を押せば、
A2に2が現れ、A3にそのまま3が下ります。
No.2
- 回答日時:
手操作(メニュー項目の機能その他)ではできないでしょう。
ーー
何々したときという、機会を捉えるのは、VBAではイベントという仕組みを使わざるを得ないが、「シートに行挿入したとき」というイベントは既定では設けられておらず、別途自作も、並みのVBA経験者では難しいようです。
http://aol.okwave.jp/qa3402525.html
の#1のご回答
ーー
>自動的に新しいA2に2を入力するようなことは
2というのはどうして出すの?
1と3だから2は思いつきやすいが、1と5ならどうするの。上の行の値+1で良いということ?中間地値?。
No.3
- 回答日時:
#2です。
行挿入したとき、アクチブセルが空白になる事実を思いついてPrivate Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
Application.EnableEvents = False
If ActiveCell = "" Then
ActiveCell = ActiveCell.Offset(-1, 0) + 1
End If
Application.EnableEvents = True
End Sub
をやってみた。
ーー
制約
(1)A列1列にだけ効果あり。(これは別列に変えられるが)
(2)普通に挿入ー行の時だけはうまくいく。
(3)前の上行に+1した数をセットする。他のルールに変えられるかも。
(3)A列は数字ばかりの入力とする。数字なら+1できるから。
文字列なら空白などはできる。
(4)セルの値のDELも(3)をしてしまうので、DELは使えない。
(苦しい事実)
ーー
お遊び程度の不完全なものになる。
それなら、質問のメインの作業が終ってからまとめて(バッチ作業という。)、VBAで、全行について空白セルに、考えているルールの値を出した方が良さそう。
No.4
- 回答日時:
行挿入も含めてVBAにすれば簡単です
カーソルをA2において、次のVBAを実行します
Sub TEST()
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown
ActiveCell.Select
l = ActiveCell.Row()
Cells(l, 1) = (Cells(l - 1, 1) + Cells(l + 1, 1)) / 2
End Sub
No.5ベストアンサー
- 回答日時:
こんばんは。
>自動的に新しいA2に2を入力するようなことは可能でしょうか?
可能ではあるけれども、細かい仕様が必要です。単に、1 と 3 の間に、挿入したら、2を手で入れる程度のこととを、自動化するのは、Excelでは、かなり苦労してしまうことです。別に、出し惜しみではなくて、自分の希望しているのと違いました、といわれるのもきついのです。
マクロとしては、#2のimogasiさんもおっしゃられるように、イベントの内容としては、かなりヘビー級です。
私も一応、常連の一人としては、もう少し、具体的な内容を教えてもらわないといけないように思います。一体、どのような状態で質問しているのか、ということですね。
いわゆる「穴埋め式マクロ」というなら、以下のようにすればよいです。
ただし、時間の場合は、以下のマクロではできません。
データのあるセルをアクティブセルにしてください。
以下は、最初の行は、1行目ですから、そうでなければ、START のところを変更してください。
間の差は、小数点も入るように、Double型にはなっていますが、やめたほうがよいです。
なお、空白の間のセルは、自動的に計算していれます。
'標準モジュール
Sub SkipInsertMacro()
Dim rng As Range
Dim i As Long
Const DIF As Double = 1 '間の差
Const START As Long = 1 '最初の行..1行目..1以上
Set rng = Range(Cells(START, ActiveCell.Column), _
Cells(Rows.Count, ActiveCell.Column).End(xlUp))
If rng.Count = 1 Then Beep: Exit Sub
Application.ScreenUpdating = False
With rng
For i = .Count To START + 1 Step -1
If .Cells(i - 1, 1).Value = "" Then
.Cells(i - 1, 1).Value = .Cells(i, 1).Value - DIF
ElseIf .Cells(i, 1).Value - .Cells(i - 1, 1).Value > DIF Then
.Cells(i, 1).EntireRow.Insert
.Cells(i, 1).Value = .Cells(i - 1, 1).Value + DIF
i = i + 2
End If
Next i
End With
Application.ScreenUpdating = True
Set rng = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで隣の列に入力した内容によって自動入力させるシステムを作りたいです。 1 2022/07/06 02:28
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Visual Basic(VBA) セルに抜けた番号の代わりに空白を挿入する 4 2023/04/10 20:29
- その他(データベース) エクセル 自動入力 1 2022/10/17 21:17
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- Excel(エクセル) エクセルで最初に値が入っているセルを見つける方法はありますか? 2 2023/07/18 14:58
- Excel(エクセル) エクセルのマクロを教えてください 2 2022/05/13 10:21
- CPU・メモリ・マザーボード メモリーを増設し、8G*2枚から、追加で16G*2枚を挿したら、パソコンが起動しなくなりました 11 2023/04/23 14:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル マクロ オートフィ...
-
excel 小さすぎて見えないセル...
-
excelのデータで色つき行の抽出...
-
エクセルで特定の文字列が入っ...
-
【Excel関数】UNIQUE関数で"0"...
-
結合されたセルをプルダウンの...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセル 上下で列幅を変えるには
-
アクティブになっている行をマ...
-
特定の文字がある行以外を削除...
-
AのセルとB行を比較して、一致...
-
Excel グラフのプロットからデ...
-
EXCELで最後の行を固定
-
セルの色によって条件文をつけ...
-
エクセル マクロ等を利用した各...
-
Excel2007で、指定範囲の行高さ...
-
エクセル マクロで数値が変っ...
-
Excelマクロ 期間を指定してデ...
-
貼り付けた数式を最終行まで繰...
-
Excel VBA アクティブセルから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
[EXCEL]ボタン押す→時刻が表に...
-
結合されたセルをプルダウンの...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
AのセルとB行を比較して、一致...
-
エクセル 上下で列幅を変えるには
-
Excel ウインドウ枠の固定をす...
-
特定の文字がある行以外を削除...
-
excelのデータで色つき行の抽出...
-
エクセル2016で時間を入力して...
-
excel 小さすぎて見えないセル...
-
EXCELで最後の行を固定
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
エクセルマクロで偶数行(又は...
-
エクセルのセルに指定画像(.jpg...
-
罫線の斜線を自動で引くマクロ
おすすめ情報