(sheet1)
A B
1 りんご 2
2 ばなな 6
3 りんご 3
4 りんご 1
5 ばなな 2
6 ばなな 4
↓
(sheet2)
A B C D E F
1りんご 2 りんご 3 りんご 1
2ばなな 6
3ばなな 2 ばなな 4
4
5
6
上記のように、sheet1の表がsheet2に転記され
さらに、sheet1のB行の個数がsheet2で足して6以下は3列で転記され
6以上になると、次の行に転記される。
ようなマクロを作りたいのですが、教えていただけないでしょうか。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんな問題は聞く前に書いているとおりにプログラムすれば仕舞いでしょう。
ロジックを考えてみましたか。初心者なら、頭を整理するか、文章(箇条書き・フローチャートなど)にしてみるものだ。
いろんな方法がありえるが、やりやすいのは、商品列でソートして処理を始める方法。ソート法。
それは
Sheet2で書き出すセルの行と列を示すj、kの変数を定義する(作る)。書き出すセルはSheet2のCejlls(i,J)で表される。
また、今までの個数(B列の内容が個数だということを質問の始に表示せよ)を保存する変数Xを設ける。
その変数に直前の行までの個数が足されている、変数だ。
2つのシートを扱うので、その区別するため定義する。セルにはその後その区別をかぶせること。
Sheet2の書き出すセルの行・列の数を初期化。j=3,k=1など。
(1)(ソート後のSheet1の)最初のデータ行からデータ最終行dまで以下を繰り返し For Next
行を表す変数は i とする。
For i=3 To d
処理
Next i
(2)まず前の行の商品と今の行の商品が変わったか比較する。
(3)変わったらShee2の書き出すポインターJを+1する。列は1(A列)にする。
そしてSheet2にデータの書き出し。
(4)その変数Xに、この行の個数を足したものが、6以下なら何もせずに、変数Xに足す。
Sheet2にSheet1のいまのデータを書き出し。
次の行の処理に行く
(5)6以上なら、シート2の今の行に1行挿入する。jに+1し、Kは1(A列)とする。
Sheet1の今の行のデータをSheetのCells(J,K)に代入し、Xの個数を今の個数にする。
ーーー
2つのシートを扱うので、その区別しての書き方を勉強すること。
ーー
回答をコピーして出来ました、では丸投げで、質問者の勉強にならない。
上記のようなロジックをコードにする練習ぐらいすること。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Visual Basic(VBA) Sheet1の出荷日と品名が並んだ表からSheet2の品名別出荷日別の個数一覧表を作っています。 オ 3 2022/12/01 23:54
- Excel(エクセル) 【Excel質問】別シートにある複数の同型の表から、同じ行項目にある数字を集計する 4 2023/02/16 00:14
- その他(プログラミング・Web制作) ZWCAD CUIXとLISPの関係について 1 2022/09/28 03:07
- スーパー・コンビニ 「コンビニで エクセルをプリントアウト」することができますか? 8 2022/06/16 15:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
VBAを使って検索したセルをコピ...
-
B列の最終行までA列をオート...
-
Cellsのかっこの中はどっちが行...
-
エクセルVBAにて =A1=B1とすれ...
-
VBマクロ 色の付いたセルを...
-
エクセルVBA intersect colu...
-
Worksheets メソッドは失敗しま...
-
文字列の結合を空白行まで実行
-
エクセルVBA シートモジュール...
-
【補足欄が足りなかったため、...
-
VBA 値と一致した行の一部の列...
-
vba 2つの条件が一致したら...
-
マクロ 関数を使った抽出でエラ...
-
【VBA】2つのシートの値を比較...
-
C# dataGridViewの値だけクリア
-
エクセル VBA ユーザーフォー...
-
別シートから年齢別の件数をカ...
-
グリッドの列の最大値を求めたい。
-
VBAで条件から範囲を指定して色...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報