【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?

先日、マクロで行を自動挿入する投稿をさせていただき
まして無事解決した案件の続きになるのですが・・・><

【行いたいポイント】
①Sheet1の表からSheet2へ行の挿入を自動で行う。
(規格数×カラー数の自動挿入)
→自動挿入は前回解決させていただきました。
ご回答いただきました方々本当にありがとうございました。

②【今回のメイン】今回はマクロで可能であれば皆さまのお力を再度お借りしたい部分です。
下記の現在の状況で自動で添付画像の様に規格数とカラー数が表にまとめられる様な形にしたいと
考えておりますが、関数で処理しようと検討はしているのですが行が増えると関数もずれてしまい
ただやみくもに時間だけが過ぎてしまっている状況です><


【現在の状況】
・Sheet1 の表には規格数が最大10規格内で増加元減するため最小規格と最大規格のみを入力しています。
・現在は規格数に番号を振り最大値から最小値を引いて挿入する行数を求めている状況です。
・カラー数は最大で6カラーまであり表に全て記載できる様にしています。
・先日、カラー挿入数を自動で入れるマクロを投稿にて教えて頂き行は自動で増やせる状況です。
→添付画像にするために元表の変更が必要であれば変更をします。

他力本願的で本当に申し訳ございませんが、頭が限界で投稿させていただきました。

「マクロに精通されている皆様。教えて頂けま」の質問画像

質問者からの補足コメント

  • へこむわー

    【追記補足】
    1画像を修正をさせていただきました。
    2規格に関しては、最大10個まで増加減するので表の見やすさの都合上【規格①】に最小規格値と【規格②】に最大規格値 のみ の現状は表です。(マクロを設定する上で必要で規格を⑩まで増やします。)

    「マクロに精通されている皆様。教えて頂けま」の補足画像1
      補足日時:2021/06/26 14:23
  • つらい・・・

    【概要】
    規格は商品毎に最大10種類あり商品別に選びます。
    表の商品(ポテト)は全10種類ある規格の中から①80g②120gの規格2種類を使用しています。(画像に載せていない別表に入力)
    各規格のカラーは上限6種類で都度カラー作成し別表入力しています。 【Sheet1】は別表集計をコピペしたものです。現在は手入力で行を増やして【Sheet2】の様に修正しています。【80g×各カラー】【120g×各カラー】
    【Sheet2】はイメージ図で実際は同シート内を編集したいと考えています。
    【規格×カラー挿入数】は手作業用に規格数とカラー数の個数カウントし行を増やす指標です(フォントは無視してください><
    【目的】
    Sheet1にコピペされた表をそのままマクロをいれて Sheet2(イメージ図)のような
    規格×カラーが表になるようSheet1を修正したいと考えています。

      補足日時:2021/06/26 18:10
  • シートが2枚あります。
    ①【オプションdeta1】サイズ:カラーのみ画像 ②【オプション登録】集計する画像です。
    ①→②に先日の内容をUPするのが目的理想です。
    シートの行タイトル(フォント)について
    ・赤フォント今回のご相談箇所です。
    ・黒・青全てコピー対象です。
    (青フォントは関数の計算式で結果を表示している意味でフォントを変えています。)
    この内容で伝わりますでしょうか?ご面倒をおかけしてばかりで本当に申し訳ございませんが
    宜しくお願いいたします。

    「マクロに精通されている皆様。教えて頂けま」の補足画像3
      補足日時:2021/07/04 01:05
  • 【オプション登録】画像です。

    「マクロに精通されている皆様。教えて頂けま」の補足画像4
      補足日時:2021/07/04 01:06
  • HAPPY

    補足画像:CB列メイン画像

    「マクロに精通されている皆様。教えて頂けま」の補足画像5
      補足日時:2021/07/08 22:18

A 回答 (12件中11~12件)

こんにちは


なさりたい事、正しい結果が説明を読んでも、画像を見ても見当が付きません。
もっとも、行いたい事を人に正しく説明できるのなら解決されているのかも知れませんね

>最大値から最小値を引いて挿入する行数を求めている状況です。
120から80を引いて、、なぜ 3なのですか?

10単位で、Sheet2に1行すでにポテト 50 80 赤があるからですか?
12-8,、すでにデータがあるから4-1?
追加補足の緑が上に来るのはすでにあるデータが赤だからですか?
カラー③は何色、、、すべての色、データ数を書いた方が良いかも

3は入力ですか?関数ですか?関数で求めているのなら 数式を示してください。

挿入する位置ですが、、これも不明です。
何故、纏めるSheet2にすでにポテト、、、があるのでしょう?
すでにデータがある下に挿入するのですか?
であるなら、アイテム名は一意の値ですでにあるカラーを参照する必要がありますか?

Sheet1をSheet2にコピーして何だかの法則で表組(データ数)を変えたいと言う事でしょうか。

各色と最大値 最小値の関連性は?
例えば、カラーの入っているセル(最大6)の色で カラー1は1行
カラー2は2行 カラー3は3行、、最大6行挿入するとか、、、
挿入数とカラーの数が合わない時はどのような処理をするのでしょう?
交互に入れると言う事?

正直、補足説明を読んでさらに分からなくなってしまいました。
補足から推察すると3行挿入すると言う事とSheet2にすでにデータがあると言う事が難しくしているような気がします。

例えば、
Sheet2をクリアーして
挿入数を(120-80)/10 として
規格1の値をカラーの数の分保持して各カラーで挿入
規格2を上記と同様に値設定して挿入、、なのかな?

Sheet2にすでにデータがある場合は、一致するデータは出力しないとか

このあたりの処理手順をIF文で書いてみてはいかがでしょう?
パズルみたいなものなので、
関数でなくて通常言語でも、、、状況によってはフローチャートで書くとか

ご質問を質問で返すような形になり、長文で失礼とは存じますが
今一度、ロジックを手書きするなりして整理されてはいかがでしょう。

想像でコードを示しても、データの増減を行う時に上手くいかない可能性が高いでしょうが、

挿入でなくデータを新たに作るのであれば、
下記のような感じかも知れません。(ご質問には該当しませんがすみません)

規格のセルの数、カラーの数でループを決めています。(挿入数は必要ありません)
参考にならないとは思いますが、一応、、、

出力前にWorksheets("Sheet2")はクリアーされるので注意して試してください。

Sub sample()
Dim i As Long, j As Long, n As Long
Dim r As Range
Worksheets("Sheet2").Cells.ClearContents
For Each r In Worksheets("Sheet1").Range("A3", Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp))
If r.Value <> "" Then
For i = 1 To Application.CountIf(r.Offset(, 3).Resize(, 2), "<>")
For j = 1 To Application.CountIf(r.Offset(, 5).Resize(, 3), "<>")
With Worksheets("Sheet2")
.Cells(2 + n, 1).Resize(, 3).Value = r.Resize(, 3).Value
.Cells(2 + n, 1).Offset(, 3).Value = r.Offset(, 2 + i).Value
.Cells(2 + n, 1).Offset(, 4).Value = r.Offset(, 4 + j).Value
End With
n = n + 1
Next
Next
End If
Next
End Sub
    • good
    • 1
この回答へのお礼

せっかく見ていただいたにも関わらず拙い投稿力で本当に申し訳ございません!><
にも拘わらず、ご丁寧に補足内容を頂きまして心より感謝申し上げます。
本当にありがとうございます。
補足説明をつけさせていただきました。あつかましいお願いで申し訳ないのですがいま一度ご教授いただければ幸いです。宜しくお願い申し上げます。

お礼日時:2021/06/26 18:16

添付されている画像を見るとカラー①、②、③・・・⑥まであるのは想像できるのですが、規格①、②で、③以降がどうなっているのか想像できません。


ExcelでVBAを書く場合、セル位置って重要です。それが分かるような画像を貼らないと、有効な回答が付きにくいです。

それから、想定結果が、80赤、80赤、120緑、120緑になっていますが、80赤、80緑、120赤、120緑が正しいような気がします。
この辺もいい加減に書くと回答、付かないですよ!!
    • good
    • 1
この回答へのお礼

本当にありがとうございます。
何から何までお気遣いいただき本当に感謝申し上げます。
ありがとうございます。

お礼日時:2021/06/26 14:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!