- ベストアンサー
エクセルマクロで注文表を作成する方法
- エクセルマクロを使用して、最大約5000件の注文表を簡単に作成する方法を紹介します。
- 注文番号と注文枚数をピボットで集計し、A4サイズの表に注文のあった番号と枚数を入力するマクロを組むことができます。
- さらに、ヘッダーの設定をテキストボックスで行い、ボタンをクリックするだけで雛形の枚数部分を削除することもできます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>1、SUMIF関数で注文ない番号の部分は0と表示されますが、 空白にする場合はどのような条件を付け加えればよいでしょうか? セルの書式設定で対応するのが簡単です。 表示形式でユーザー定義を選び、種類のところに「#,###」を手入力します。 >2、ヘッダーの位置(左にお客様の名前、右端に常に弊社名)を決める場合、マクロではどう書けばよいでしょうか? .CenterHeaderを.LeftHeaderや.RightHeaderに変えてください。 Excelでは右、中央、左にそれぞれ設定できます。 なお、自社の名前はわざわざVBAで設定しなくても、ファイルメニューのページ設定で設定しておいても良いのではないでしょうか? また、VisualBasicEditorの画面で、.CenterHeaderにカーソルがある状態でF1キーを押せばヘルプが表示されますので、参考にしてください。
その他の回答 (1)
- picklse
- ベストアンサー率65% (26/40)
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
お礼
どうもありがとうございます。 おかげさまで半分くらい作業を減らすことが出来ました。 もう2点質問させてください。 1、SUMIF関数で注文ない番号の部分は0と表示されますが、 空白にする場合はどのような条件を付け加えればよいでしょうか? 2、ヘッダーの位置(左にお客様の名前、右端に常に弊社名)を決める場合、マクロではどう書けばよいでしょうか? ご指導よろしくお願いします!