Excel VBAで、
以下の範囲で5つの項目をうまく操作したいです。
1行目が項目名です。
A列「連番」:2行目からカウント
E列「年月」:「2021年04月」が入っています
F列「区分1」:01~29(29パターンありますが将来増減の可能性あり)
G列「区分2」:A~J(10パターン)
H列「比率」:ある率が入ってます(値は本件と無関係です)
これが以下の様に全組み合わせに対する率が列挙されています。
A列,E列,F列,G列,H列(B~D列は別の情報が入っていて無視してOK)
1,2021年04月,01,A,任意の率
2,2021年04月,01,B,任意の率
・
・
9,2021年04月,01,I,任意の率
10,2021年04月,01,J,任意の率
11,2021年04月,02,A,任意の率
12,2021年04月,02,B,任意の率
・
・
281,2022年04月,29,A,任意の率
282,2022年04月,29,B,任意の率
・
・
290,2022年04月,29,J,任意の率
つまり、AからJまで進んだら、01が02になり、、、の繰り返し、
29,Jまであるので、現在290行あります。
もし区分1が30まで増えたら全行数が300行になるという事になります。
前置きが長くなりましたが、上記は自動で生成されるようになっています。
----------
今回の相談は、その下に自動で追加したいのです。
E列「年月」、F列「区分1」の全パターンに、
G列には「全体」という固定値、
H列には「1」という数値を固定で入れて行追加したいのです。
具体的にはこうなると思います
291,2021年04月,01,全体,1
292,2021年04月,02,全体,1
・
・
319,2021年04月,29,全体,1
つまり今回の場合は290行目の下に29行追加されるのですが、
問題点は、
・区分1の増減により全体の行数が変わる
・A列が連番になっている必要がある
長くなってしまいましたが、問題点解決策のアドバイスをお願いいたします。
No.3
- 回答日時:
>・区分1の増減により全体の行数が変わる
>・A列が連番になっている必要がある
要は、最終行とその最終行に書かれている連番の値が判れば良いわけですね。
以下のマクロを実行してください。
最終行と最終行に書かれている連番が取得できます。
Option Explicit
Public Sub 最終行取得()
Dim maxrow As Long
Dim renban As Variant
maxrow = Cells(Rows.Count, "A").End(xlUp).row 'A列最終行
renban = Cells(maxrow, "A").Value
MsgBox ("最終行=" & maxrow)
MsgBox ("連番=" & renban)
End Sub
ありがとうございます。早速試してみました。
A列には関数が入っていて、今回の場合291番の場所以降は””表示の処理が入っていました。
なので上記ソースを実行すると、一見、空セルでも関数の入っている一番下の行位置が表示されてしまいました。
見た目に数値が入っているかを検知できないでしょうか。
No.2
- 回答日時:
No.1のお礼について。
>事前処理後の表に対してあらためて処理したいのです。
ここは質問文でわかりますけど、取得したい内容は既に事前処理にて得られるものです。
仮に業者が作成した訳とかその部署で作成したって事であれば、相談するのが先かなと。
>なので1か月分だけの表に対して、「全体」行を追加したいのです。
私は質問文の 281 の前後で『年』が違うのは何故なのか?と疑問に感じたのですけど?
その辺で他の回答者も困惑されているのかもですよ。
仮に間違いで年が同じってっ事であり、必ず10パターンが1組で組数が変わるだけならA列の最終番号を10で割れば『何組』なのかは求められそうですけど。
他の年月のデータでその辺の確認はされて来ませんでしたか?
でもどれだけの組数の変化があるのかわかりませんが、100行以上作成する訳ではないのなら、2行打ち込んでフィルコピーでも出来るレベルな事かと。
或いは500・1000とかの月もあるのでしょうか?
又はフィルコピーでは他の列で影響が出てしまう?
No.1
- 回答日時:
問題点として挙げている部分は現在自動生成が完成しているコード内容によって決まるのではなくて?
A列の値は1つ上のセル値に+1で決まるでしょうけど、『区分1』の増減対応ってそもそも区分1の終了値をどのようにして決めているか?によりませんかね。
ところで『年月』の年がいつ翌年になるのか、月はずっと同じなのかが気になります。
自動生成している処理は、事前に別の部署で行ってから、
こちらに回ってきます。
なので相談内容は、事前処理後の表に対してあらためて処理したいのです。
>『年月』の年がいつ翌年になるのか、月はずっと同じなのかが気になります。
月ごとに事前処理後のファイルが回ってきますので、
4月で出来る方法を作っておけば、5月以降も同様の事をすればよいと考えてます。
なので1か月分だけの表に対して、「全体」行を追加したいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 世界情勢 イーロン・マスクがツイートで警告、このままいけば「日本は消滅する」について 8 2022/05/09 14:30
- 統計学 お酒に強い人の割合について 2 2022/09/10 18:42
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- 台風・竜巻 今後の台風について 2 2022/08/11 09:22
- 数学 コインを投げて特定のパターンが出現する確率 5 2022/07/31 09:06
- Excel(エクセル) エクセルのデータ整形について 3 2022/11/12 00:27
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelのVBAコードについて教え...
-
VBA指定行削除
-
VBA 別ブックからコピペしたい...
-
VBA 何かしら文字が入っていたら
-
VBA一覧取得 再投稿
-
エクセルVBAについて
-
Outlookの「受信日時」「件名」...
-
【ExcelVBA】値を変更しながら...
-
【ExcelVBA】インデックスが有...
-
ユーザーフォームに別シートか...
-
VBA 複数のエクセルから一つの...
-
VB.net(VB)で、フォームにExcel...
-
VBAのコードを教えてください
-
VBA
-
2つのマクロでチェックボックス...
-
VBA listBoxについて
-
VBA 別ブックから条件に合うも...
-
VBA ファイル名取得
-
郵便番号検索APIにてget Elemen...
-
ExcelのVBAコードについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報
2022年というのは誤入力です。失礼いたしました。
1か月分だけです。
29行だけ追加されることになりますがその特定方法が分からず。。。