セルに文字を入れたら、行が追加される【VBA】

目次

経緯

Excel関数の「match関数」と「index関数」を使って値を得ていたが、それらの関数だと、「重複している値はセルの上にあるほうが優先されて読む」のでどうにかセルの下にあるほうを読めないか模索していた。しかし、調べていくと、なかなか難しいらしい。

結果、

「セルの上にあるほうが優先される」なら、

「セルの上にどんどん行を追加しちゃえ」という結論になり、VBAでやってみました。

「Rows().insert」を使う

「ExcelのSheet1に値がある」という設定です。

まず、Visual Basicを開きます。

次に、Microsoft Excel Objextsのフォルダの中のSheet1をダブルクリック。

そこにプログラムを↓のように書きます。

Sub Worksheet_Change(ByVal Target As Excel.Range)

   If Range("A2") = "" Then
      Exit Sub
   else
      Rows(2).Inset
   End If

End Sub

プログラムの説明をします。空白の行はカウントしてません。

1行目、おまじないです。そのまま書いてください。

2行目、If文です。セルA2が空白だったら、3行目に飛びます。

空白じゃなかったら、、4行目に飛びます。

3行目、空白なのでプログラム終わりです。

4行目、else行が始まります。

5行目、ここで行を挿入しています。(2)は上から2行目という意味です。

6行目、If文終わりです。

7行目、プログラム終わりです。

こんな感じでうまくいきました。

セルA2に文字を入れると、行が追加されると思います。

参考になれば、幸いです。

ここまで読んでいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次