初めまして。
Excel初心者です。
色々と調べてみたのですが、上手くいかずご相談させていただきたいと思います。
縦列の特定の文字を検索し、その手前に空白が無くなった場合に行を追加したいです。
A 列 B列 C列 D列 E列 F列 ・・・
1行目 名前1 概要1 金額1 名前2 概要2 金額2・・・
2行目 【ここに何か入力されたら行を追加したいです】
3行目 <項目1> 合計1 合計2・・・
4行目 名前3 概要3 金額3 名前4 概要4 金額4・・・
5行目 【ここに何か入力されたら行を追加したいです】
6行目 <項目2> 合計3 合計4・・・
例として、上記のように項目の異なる計算を1月、2月と月別でシートごとに分けて作っています。
月によって項目数が変わり、5件記録を入力する時もありますし、50件の時もあります。
予め空白の行を作っておいておくことはできますが、そうなると表が必要以上に縦長になってしまい見づらくなってしまうので、できる限りコンパクトにしたいと考えています。
IF文でRenge.Findなど使ってみましたが、書き方が悪いのかうまく作動しません。
分かりにくい質問になってしまいましたが、知恵をお貸しいただけましたら幸いでございます。
よろしくお願い致します。
No.3
- 回答日時:
こんにちは
すでに回答されている1様の回答に同感です
ご質問の表組の場合、合計1など合計の文字列が必ずあるのであれば
合計をキーワード(Findではなく)に挿入するのはいかがでしょう
If InStr(Target.Offset(1, 2), "合計") > 0 Then
Target.Offset(1).EntireRow.Insert Shift:=xlDown
End If
C3に合計1の文字列でなく(多分こっちかな)
=SUM(C2:INDIRECT(ADDRESS(ROW()-1,COLUMN())))
みたいな関数が入っているのなら・・・
If InStr(Target.Offset(1, 2).Formula, "SUM") > 0 Then
のように数式文字列で位置を確認するなどかな・・
>VBAを組み込むことを前提で考えています。
現状の(上手くいかない)コードを示された方が良かったかな
ご回答ありがとうござます!
InStrで数式文字列も指定できるとは知りませんでした。
確かに、コードを明記すればより回答もし易いのかなと感じます。
初めての質問・相談の投稿で至らぬ点が多かったと存じます。
申し訳ありませんでした。
No.2
- 回答日時:
本文中は「行を追加したい」のオンパレードだけど、タイトルは「列を自動で追加したい」とは、コレ如何に?
No.1ベストアンサー
- 回答日時:
こんにちは
>その手前に空白が無くなった場合に行を追加したいです。
行の追加(挿入)はVBAを使用しないとできません。
そういう意味でのご質問でしょうか?
>【ここに何か入力されたら行を追加したいです】
なんらかの区切りの単位があって、その単位で空白行が無くなったら、空白行を自動挿入したいということかと推測しますが、「区切りの単位」がよくわかりませんね。
(質問者様には分かっていらっしゃると思いますので、問題ありませんけれど)
考え方として、
・合計欄等、関数を利用して集計等している部分があると思いますが、「行の挿入」を行っても計算が正しく行われるような関数式にして設定されていることが前提条件になります。
その上で、シートのChangeイベントで、
・変更のあったセルを取得し、そのセルが属する区切り単位を把握する。
・区切り単位内の空白行の有無をチェック
・空白行が無ければ、空白行を挿入する
(空白行があれば、なにもしない)
といった処理を記述すれば実現できるものと想像します。
※ 上記だけだと、誤って入力して(空白行が追加され)、その後削除した場合には、空白行が2行になってしまいますが、それは許容されるものと解釈しました。
・記述漏れてしまい申し訳ありません。
VBAを使用する前提で質問していました・・・。
・区切りの単位は今のところ何も考えていませんでした。
文字列でも数字でも一番の目標として空白の行を自動追加したい。という状態です。
・考え方として行の挿入をしても計算が狂わないように設定しなくてはならないこと、把握しました。
処理の流れも大方理解はしていたのですが、VBAを触ることが殆ど初めてなので正しい書き方などが完全に理解できていない状態です。
・空白行が2行になってしまうことは許容しています。
言葉足らずで分かりづらい投稿に細かくご回答いただき、ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで最初に値が入っているセルを見つける方法はありますか? 2 2023/07/18 14:58
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
- Visual Basic(VBA) 【至急】 当方初心者です。 マクロについて知恵をお貸しください。 ★したい動作 ①リストE列2行目か 4 2022/09/29 18:56
- Excel(エクセル) 特定文字(数字)で行挿入、挿入された行で合計したい 2 2023/03/13 14:30
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) VBAで重複データを確認したい 5 2022/10/07 16:24
- Visual Basic(VBA) VBA エクセル 条件の設定 1 2022/03/28 10:24
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
エクセルでCSVを編集するとき、...
-
Excel > ピボットテーブル「(空...
-
数式による空白を無視して最終...
-
【Excel】 csvの作成時、空白セ...
-
エクセルにて負の時間を0:00と...
-
「データ要素を線で結ぶ」がチ...
-
excel2010 空白セルにのみ貼り...
-
ピボットテーブルで空白セルの...
-
形式貼り付けの「空白を無視す...
-
エクセルで、「複数のセルの中...
-
Excel:関数が入っているセルに...
-
空白セル内の数式を残したまま...
-
SUMIFS関数で「計算式による空...
-
Excelで、入力文字の後に自動で...
-
vlookupの結果が0になるセルと...
-
エクセルで上の行の値を自動的...
-
vlookup にて、返す値が、空白...
-
エクセル マクロ 最終列まで...
-
エクセル 連番が途切れていると...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
数式による空白を無視して最終...
-
excel2010 空白セルにのみ貼り...
-
エクセルでCSVを編集するとき、...
-
「データ要素を線で結ぶ」がチ...
-
Excelで、入力文字の後に自動で...
-
ピボットテーブルで空白セルの...
-
エクセル 連番が途切れていると...
-
関数TRANSPOSEで空白セルを0に...
-
空白セル内の数式を残したまま...
-
Excel > ピボットテーブル「(空...
-
エクセルで、「複数のセルの中...
-
SUMIFS関数で「計算式による空...
-
空白を0とみなす関数
-
【Excel】 csvの作成時、空白セ...
-
エクセルで上の行の値を自動的...
-
《Excel2000》SUMPRODUCT関数で...
-
一列の中の金額を他のセルに
-
形式貼り付けの「空白を無視す...
-
エクセルで空白文字の前後を入...
おすすめ情報
VBAを組み込むことを前提で考えています。
正しい処理の書き方などが正確に分かっていない状態です。
言葉が抜けてしまって申し訳ありません。
タイトルを間違えていました。
列ではなく『行』の追加をしたいと考えています。