dポイントプレゼントキャンペーン実施中!

はじめまして。
職場でExcel2016を使用しています。
(OSはWindows10)

50~60歳の年配が多い職場の業務改善が目的。
各々パソコンの腕前は文字の入力ならできる程度。
作成されたリストを基に別の担当者がWordでラベル作成を行っています。

こちらで質問させて頂いた理由は、VBAやマクロを使用してどうにかボタン一発で
リスト化できないかお知恵を借りたくて投稿いたしました。

上手く説明ができなく画像を添付してあります。
要はSheet1に入力した情報をもとに、Sheet2に画像のようにリスト化したいです。
入数というのは、1箱に入る入数です。
それぞれ商品が何番から何番まで入っているか連番で番号をラベルに表示しなくてはなりません。
スタート番号~エンド番号は連番ですが、入数やスタート番号は変動する場合があります。

以上、解決できる方法がありましたらご教示お願い致します。

「(Excel)最小限のデータ入力で別シー」の質問画像

A 回答 (4件)

ワークシート関数は苦手なので VBA で。



Sub Sample()
 Dim base_pos As Range
 Dim hako As Long
 Dim iri As Long
 Dim sta_No As Long
 Dim end_No As Long
 Dim i As Long
 Dim wk As Long

 Worksheets("Sheet2").Cells.Clear
 ' 表の開始位置を指定する
 Set base_pos = Worksheets("Sheet2").Range("F1")

 Worksheets("Sheet1").Range("A3:B10").Copy

 With base_pos
  .Offset(, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True

  iri = .Range("E2")
  hako = .Range("F2")
  sta_No = .Range("H2")
  end_No = .Range("I2")

  .FormulaR1C1 = "箱番号"
  .Offset(1) = 1
  .Offset(1).Resize(hako).DataSeries
  .Range("B2:G2").Copy .Range("B2").Resize(hako)
  .Range("H1") = "スタート"
  .Range("I1") = "エンド"
  .Range("J1") = "文字列スタート~エンド"

  ReDim no_ara(1 To hako, 1 To 2) As String

  wk = sta_No - 1
  For i = 1 To hako
   no_ara(i, 1) = Format(wk + 1, "0000")
   wk = wk + iri
   no_ara(i, 2) = Format(wk, "0000")
  Next
  no_ara(hako, 2) = Format(end_No, "0000")

  .Range("H2").Resize(hako, 2).Value = no_ara

  .Range("E1").Offset(hako) = no_ara(hako, 2) - no_ara(hako, 1) + 1

   .Range("J2").Resize(hako).FormulaR1C1 = "=RC[-3] & RC[-2] & ""~"" & RC[-3] & RC[-1]"
 End With
End Sub


すでに Sheet2 が存在する場合です。
シートをまっさらにしてから出力します。要注意。
    • good
    • 0
この回答へのお礼

助かりました

素晴らしい解答ありがとうございます。
まさに希望通りの結果となりました。
おかげ様で業務がスムーズに移行できそうです。
ありがとうございました。

お礼日時:2021/10/28 21:32

一つのブックにサマリのシートと複数のデータのシートを置く形で作ってみました。


B列にシート名、2行目に項目名を置いて各シートからデータを持ってくる形です。
ヒントになれば幸いです。
「(Excel)最小限のデータ入力で別シー」の回答画像3
    • good
    • 0

こんばんは。



フォーマット用のブックを作ってはダメでしょうか?
入力用のシートSheet1と、Sheet1の参照式等を入れたSheet2を用意して、
Sheet1にデータを入れれば、Sheet2が反映される様にするとか?
罫線や式を多めにセットしておいて、不要なところを消去するか?不足している部分をコピーすれば、それ程、手間が掛からない様な気がします。

F列:連番
G列:$B$3を参照
H列:$B$4を参照
I列:$B$5を参照
J列:N列-M列
K列:$B$7を参照
L列:$B$8を参照
M列:M2は1、M3はM2+$B$6
N列:N2は$B$6、N3は、IF(N2+$B$6>B10,B10,N2+$B$6)とか?
O列:L,M,N列を、&などで繋げれば作れそうですが。
    • good
    • 0
この回答へのお礼

ありがとう

ご回答ありがとうございます

お礼日時:2021/10/23 20:27

回答がずれてごめんなさいね。


Excelが普及して、様々な機能も強化された結果、いろいろな業務で利用されていますね。
でも、もともと、Excelは一枚のシートにデーターを入力して様々に加工する時に便利なソフトです。

いま、質問者さんが仰る操作をするなら、Excelは不向きなソフトかなと思います。
「桐」や「アクセス」などデーターベースと言われるソフトを使うと、入力の手間は軽減できるし、わざわざWordでラベルを作る必要もなくなりますよ。
http://www.kthree.co.jp/kiri/
https://allabout.co.jp/gm/gc/439829/
だから、会社が許可してくれるなら、今後の合理化も含めて、データーベースに詳しい方に相談して、導入を検討してみると良いですよ。
    • good
    • 0
この回答へのお礼

ありがとう

早速のご回答ありがとうございます

お礼日時:2021/10/23 20:11

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