• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ループで出来ませんでした。ズバリお願い致します。)

エクセルで売上と伝票を自動化する方法とは?

このQ&Aのポイント
  • エクセルで日々の売上げを入力し、それを元に伝票を自動的に作成する方法について教えてください。
  • 売上げと伝票のシートを使って日々の売上げを管理していますが、手動で伝票を作成するのが手間です。自動化するにはどうすれば良いでしょうか?
  • 売上げの情報を元に、伝票を自動的に作成する方法を教えてください。チェックボックスを使用して、選択した行の伝票をプリントしたいです。

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

  • ベストアンサー
  • nak777r
  • ベストアンサー率36% (49/136)
回答No.1

Sub Macro1() Dim Sheet1 As Worksheet Dim Sheet2 As Worksheet Set Sheet1 = ThisWorkbook.Worksheets("売上") Set Sheet2 = ThisWorkbook.Worksheets("伝票") Dim baseRow As Long ' 2行目から、2列目(日付)が空になるまでループ baseRow = 2 Do While (Sheet1.Cells(baseRow, 2).Value <> "") '1列目(A列)に1が入っていた時のみ印刷 If (Sheet1.Cells(baseRow, 1).Value = 1) Then ' O3 に 2列目の値を代入 ' D5 に 4列目の値を代入 Sheet2.Range("O3").Value = Sheet1.Cells(baseRow, 2).Value Sheet2.Range("D5").Value = Sheet1.Cells(baseRow, 4).Value Sheet2.Range("S15").Value = Sheet1.Cells(baseRow, 5).Value 'Sheet2.Range("D15").Value = Sheet1.Range("EF0").Value Sheet2.Range("J15").Value = Sheet1.Cells(baseRow, 7).Value ' 印刷プレビュー Sheet2.PrintPreview End If '次の行 baseRow = baseRow + 1 Loop Set Sheet2 = Nothing Set Sheet1 = Nothing End Sub

-kamekame-
質問者

補足

 ご回答本当にありがとうございます。 実際にお会いして頭下げたい気持ちです。  標準モジュールにそのままコピペしても印刷プレビューまでたどり着けませんでした。 何故でしょうか。返答お待ちしております。

その他の回答 (2)

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.3

>画面を何度もスクロールするようなブックですがお教えいただいたマクロを実行するボタンはいつも画面上に表示しておきたいのですが何か良い方法あれば教えてください ショートカットでよければ、 EXCEL メニュー[ ツール > マクロ > マクロ ] でマクロダイアログを表示し 実行するマクロを選択して[オプション]を選択 ショートカットキーの入力欄でがあるので、 半角大文字の A を登録 " Ctrl + Shift +[ A ]" で OK 後は、いつでも、[Ctrl]+[Shift]+[A] でマクロが実行されます。 (半角 a にすると [Ctrl]+[a]になる、Ctrl+AがWindows標準のショートカット(全選択)とかぶるので、[Ctrl]+[Shift]+[何か]の方がいい キーボードの位置を考えると [Ctrl]+[Shift]+[A] が一番楽だと思う) EXCELのメニューバーやツールバーに登録する方法もありますが 説明が面倒なのでやめておきます (あとで、ボタンが消えたとか言うトラブルもでてきそうだし・・・)

-kamekame-
質問者

お礼

長々と本当にお世話になりました。 本当にありがとうございます。 短い文面ですがかなり心こめて2行打ち込みしました。  違う分野では私にも"回答"で人助けできる部分もあると思います。 この感謝をそういう形で返していきたいと思います。 機会があればよろしくお願いいたします。

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.2

' 2行目から、2列目(日付)が空になるまでループ baseRow = 2 この部分を変更してみてください 10行目から実際のデータがあるなら baseRow = 10 です

-kamekame-
質問者

お礼

ほんとに機転がきかない自分ですいません。 印刷確認できて周囲の人間も喜んでおります。貴重なお時間ありがとうございました。 ところで再度あつかましいのですが売上のシートは750行程度有り、画面を何度もスクロールするようなブックですがお教えいただいたマクロを実行するボタンはいつも画面上に表示しておきたいのですが何か良い方法あれば教えてください。自分でも勉強して考えてみます。 ありがとうございました。

関連するQ&A