戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
箱に順に並べる表を作成するには

    [195612] 箱に順に並べる表を作成するには-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ テツ -(2023/02/06(22:25))
    □U R L/

          A    B   C    D    E    F   G

      1  品名  個数  箱a@ マス番号  〜  箱a@ マス番号
      2  A   30   1    1     〜  1    30 
      3  B   70   1    31    〜 1 100 
      4  C 100 2 1    〜 2 100
      5  D 40 3 1   〜 3 40
      6  E   120 3 41   〜 4 60
      ・  ・   ・   ・   ・     ・  ・    ・
      20  ・   ・   ・   ・     ・  ・    ・

      合計     680 

      上記のような表を作成するときA列の品名、B列の個数は入力数式で出すとして、
      C2セルに開始箱番号、D2セルに開始マス番号を入力すると、B2セルの30を
      足した箱番号、マス番号をF2G2入るように。続いてB3の70を箱番号1のマス
      31〜1の100と入るように、C1D1に入力することにより自動で順に箱番号マス番号が入るようにするにはどのようにマクロを書けばよいのかご教示をお願いします。C2D2に入る数字は毎回1とは限りません。

      マクロに関してはほとんどわからないのでよろしくお願いします。




    [195613] Re[1]: 箱に順に並べる表を作成するには-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2023/02/07(07:16))
    □U R L/
      > 1  品名  個数  箱a@ マス番号  〜  箱a@ マス番号
      > 5  D      40      3        1        〜    3        40
      > 6  E   120      3       41        〜    4        60
                                                     ~~~↑~~~ ~~~↑~~~
      
      6行目で、箱bェ「4」に変わる理由 と マス番号が「60」になる理由 を説明してください。
      




    [195615] Re[2]: 箱に順に並べる表を作成するには-

    記事引用/メール受信=OFF■

    □投稿者/ テツ -(2023/02/07(12:48))
    □U R L/

      ありがとうございます。

      6行目で、箱bェ「4」に変わる理由 と マス番号が「60」になる理由は
      この箱にはB6にありますように3箱目のマス番号41から120番入れます、
      ですから次の箱の4箱目60番までとなります。

      図がこんなにズレてしまうのですね、ズレた図で見てくださりありがとうございます。
      半平太 さんのようにずれないようにするにはどうしたらよいのでしょう。




    [195616] Re[3]: 箱に順に並べる表を作成するには-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2023/02/07(17:35))
    □U R L/
      >この箱にはB6にありますように3箱目のマス番号41から120番入れます、
      >ですから次の箱の4箱目60番までとなります。
      なるほどです。
      
      >ずれないようにするにはどうしたらよいのでしょう。
      コメント送信時に 図表モード-> ○  に黒目●を入れてください。
      
      Sub packing()
          Dim App As Application
          Dim r As Range, rRef As Range
          Dim v, Sm, Pos
          Dim NumOfBoxes As Long, TTL As Long, i As Long
          
          Set App = Application
          Set r = Range("B2:B20")
          
          TTL = App.Sum(r)
          NumOfBoxes = App.RoundUp((TTL + Range("B2") + Range("D2")) / 100, 0)
          
          Range("F2:G20").ClearContents
          v = Range("C2:G2").Resize(r.Rows.Count).Value
          
          '箱No.のセル配列を作る
          Range("F2:G2") = Range("C2:D2").Value
          Range("F2").AutoFill Destination:=Range("F2").Resize(NumOfBoxes), Type:=xlFillSeries
          
          '100刻みのセル配列を作る
          Range("G3:G4") = [{101;201}]
          Range("G3:G4").AutoFill Destination:=Range("G3").Resize(NumOfBoxes - 1), Type:=xlFillSeries
          
          Set rRef = Range("G2").Resize(NumOfBoxes)
          Sm = App.Sum(Range("D2") - 1) '処理前のマス番号を算出
          
          For i = 1 To r.Rows.Count
              If App.Sum(r(i, 1)) Then '個数の入力がなくなるまで処理
                  Sm = Sm + r(i, 1)
                  Pos = App.Match(Sm, rRef, 1)
                  
                  v(i, 4) = Range("F2")(Pos, 1)
                  v(i, 5) = (Sm - 1) Mod 100 + 1
                  
                  If i < UBound(v) - 1 And App.Sum(r(i + 1, 1)) Then
                      v(i + 1, 1) = v(i, 4) + IIf(v(i, 5) = 100, 1, 0)
                      v(i + 1, 2) = v(i, 5) Mod 100 + 1
                  End If
              Else
                  Exit For
              End If
          Next
          
          '結果を上書き
          Range("C2:G2").Resize(r.Rows.Count) = v
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [195619] Re[4]: 箱に順に並べる表を作成するには-

    記事引用/メール受信=OFF■

    □投稿者/ テツ -(2023/02/08(19:07))
    □U R L/

      半平太さんありがとうございました。

      しっかりと思い通りの動きをしてくれました。

      家のパソコンではしっかりと動くのですが、会社のパソコンではセキュリティーが厳しくマクロを実行することができませんでした、あまりセキュリティーを弱にすることもできませんので、せっかく作成していただいたのに使うことができず申し訳ありません。

      そこで関数を組み合わせて同じように動くのは可能でしょうか




    [195620] (削除)-

    記事引用/メール受信=OFF■

    □投稿者/ / -(2023/02/08(20:41))
    □U R L/

      この記事は削除されました



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G