• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロで注文表を作成したい)

エクセルマクロで注文表を作成する方法

このQ&Aのポイント
  • エクセルマクロを使用して、最大約5000件の注文表を簡単に作成する方法を紹介します。
  • 注文番号と注文枚数をピボットで集計し、A4サイズの表に注文のあった番号と枚数を入力するマクロを組むことができます。
  • さらに、ヘッダーの設定をテキストボックスで行い、ボタンをクリックするだけで雛形の枚数部分を削除することもできます。

質問者が選んだベストアンサー

  • ベストアンサー
  • picklse
  • ベストアンサー率65% (26/40)
回答No.2

>1、SUMIF関数で注文ない番号の部分は0と表示されますが、 空白にする場合はどのような条件を付け加えればよいでしょうか? セルの書式設定で対応するのが簡単です。 表示形式でユーザー定義を選び、種類のところに「#,###」を手入力します。 >2、ヘッダーの位置(左にお客様の名前、右端に常に弊社名)を決める場合、マクロではどう書けばよいでしょうか? .CenterHeaderを.LeftHeaderや.RightHeaderに変えてください。 Excelでは右、中央、左にそれぞれ設定できます。 なお、自社の名前はわざわざVBAで設定しなくても、ファイルメニューのページ設定で設定しておいても良いのではないでしょうか? また、VisualBasicEditorの画面で、.CenterHeaderにカーソルがある状態でF1キーを押せばヘルプが表示されますので、参考にしてください。

その他の回答 (1)

  • picklse
  • ベストアンサー率65% (26/40)
回答No.1

Sheet1に注文のデータを保存し、Sheet2に業者に知らせる注文表を作ってみます。 Sheet1では注文番号と枚数を縦に列挙するとします。    A    B    C    D  1 注文番号 枚数   ヘッダ  ○○表 Sheet2では縦25行に注文番号ごとに枚数を集計したものを4組作るとします。    A    B    C    D…  1 注文番号 枚数   注文番号 枚数… (1)ピボットを使わなくても、Sheet2のセルB2に「=SUMIF(Sheet1!$A$2:$A$5001,A2,Sheet1!$B$2:$B$5001)」を入力し、他のセルにコピーすれば集計してくれます。 (2)Sheet1のセルD1にヘッダに指定する文字を入力することにします。 VBEでSheet1のコードに次のように書きます。 Private Sub Worksheet_Change(ByVal Target As Range)  If (Target.Row = 1) And (Target.Column = 4) Then   Worksheets("Sheet2").PageSetup.CenterHeader = Range("Sheet1!D1").Value  End If End Sub (3)Sheet1の注文データと連動しているので、集計し直す必要はありません。消去するのはSheet1の注文データの方になります。 Private Sub ClearData() Range("Sheet1!$A$2:$B$5001").ClearContents End Sub

haruhary
質問者

お礼

どうもありがとうございます。 おかげさまで半分くらい作業を減らすことが出来ました。 もう2点質問させてください。 1、SUMIF関数で注文ない番号の部分は0と表示されますが、 空白にする場合はどのような条件を付け加えればよいでしょうか? 2、ヘッダーの位置(左にお客様の名前、右端に常に弊社名)を決める場合、マクロではどう書けばよいでしょうか? ご指導よろしくお願いします!

関連するQ&A