• 締切済み

マクロの組み方について

マクロの組み方についてなのですが、エクセル管理を任され困っています。 sheet1のC1に商品名、C2に型式、B5~B54に1~50(店ナンバー)が入っておりC5~C54にその店へ送る商品数が入っています。 同じくE5~E54に51~100の店ナンバー、F5~F54に送り数が入っています。 C4には店ナンバー1~50へ送る合計数が、F4には店ナンバー51~100へ送る合計数が入っており、その合計(店ナンバー1~100分)がC3に入っています。 コレをsheet2以降にある商品梱包箱のマップへ入力出来るようにしたいのです。 梱包箱は3段で1箱、1段に10×10の100入ります。 sheet2にはこのマップが3箱分の10×10が6つ分、 1段目がB2~K2→B3~K3と続きB11~K11まで、2段目が同様にN2~W11まで、3段目がZ2~AI11となります。 2箱目が列が同じでB15から始まりAI24まで、3箱目も列は同じでB28~AI37までとなっています。 それが送り数分sheet3、4と続きます。 店ナンバー数は50~100の間で変動します。 sheet2以降のマップには店ナンバーへ送る数と共に店ナンバーを入力したいのです。 例えば、店ナンバー1に63送るとするとまず開始のマスであるB2に店ナンバーの「1」を 63マス目であるD8にも店ナンバーの「1」を。で、その終了した行10×10のマス外、この段の場合B~Kの列を使っているのでLの列のその行に63と。 これを店ナンバー100まで入力されるようにしたいのですが可能でしょうか? 恥ずかしながら今まで印刷したものに電卓使って計算して手書きと手作業で行っておりました、こういう場合はマクロを組まなくても方法があるのでしょうか? ご教授頂ければと思います。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

表現がごたごたしている。質問の要領を記四手見る。 参考にして、再説明のこと。忙しい回答者のことも考えて。 (1)簡単な実例を挙げること。 (2)50店あっても3店ぐらいで質問すべきだ。回答を見て、後は質問者が拡張に知恵をしぼれ (3)>商品梱包箱のマップ 自社用語だろう。読者にはわからないし質問から逃げようとさせるだけ。 名前は簡単に。平凡に。 >マップ 自社用語だろう。もっと判りやすく接系のこと。 (4)エクセルは(ブック)シート・セル(行と列)で表される利用法だ。それを明確に質問を書くこと。 >マップへ入力出来るようにしたいのです の場合どういう構成のシート表を作るのか。 ーー それまでのイメージは下記のようなものだろう ー ーA列 B列 C列 -  (1)ー ー 商品名 (2)ー ー 商品形式 (3)ー (4)ー  B列 C列 D列 E列 ・・・ (5)ー 店番1 2  店番4 2 (6)ー 店番2 3  店番5 2 (7)ー 店番3 4  店番6 2 ーー どうもVBAでないと出来なさそうだが質問者はVBAの経験ありますか。 関数では表の組み換えは難しいのだ。 考え・課題が整理できないで、プログラムは組めない。自分の職場の仕事の課題の丸投げではないか(規約違反)

回答No.2

#1の方と同様にやりたいことがよくわからないのですが、以下のようなことでしょうか? Sub test() i = InputBox("店番号は?") i = Val(i) With Sheets("Sheet1")   If i >= 1 And i <= 50 Then     StoreName = .Cells(i + 4, 2)     ItemNum = .Cells(i + 4, 3)   ElseIf i >= 51 And i <= 100 Then     StoreName = .Cells(i + 4, 5)     ItemNum = .Cells(i + 4, 6)   End If End With With Sheets("Sheet2")   .Cells.ClearContents   .Cells(2, 2) = StoreName   .Cells(Int(ItemNum / 10) + 2, (ItemNum Mod 10) + 1) = StoreName   .Cells(Int(ItemNum / 10) + 2, 12) = ItemNum End With End Sub

  • nori_007
  • ベストアンサー率35% (369/1048)
回答No.1

ざっと質問を読んでみました。 申し訳ありませんが、何をしたいのか?まったく理解出来ません。 >恥ずかしながら今まで印刷したものに電卓使って計算して手書きと手作業で行っておりました、こういう場合はマクロを組まなくても方法があるのでしょうか? 上記の部分だけを見た場合、エクセルを単にマス目にしか利用していないと感じます。 あまり難しく考えず、単にマス目の合計を求める計算式を作れば良いだけではないでしょうか。 マクロと言わす、セルを合計することを考えてみてください。 後はセルの参照かな? エクセルで計算式を入れることは問題ありませんよね?

関連するQ&A