- ベストアンサー
EXCEL:領収書発行のマクロ
おはようございます。 EXCELで領収書の発行のマクロを考えています。 入力sheetは各セルに自動採番(マクロで取得)、日付や相手、金額を入力します。転記sheetは、入力sheetで入力した内容を行ごとにマクロで保存していきます。 このような仕様のEXCELフリーソフトか、記述の参考となるマクロを教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ほんとに、もう少しシートとセルを表現して、質問しないと、回答のし様がないですよ。 たとえ回答が載っても、自分で、自分のケースに合わせて、コードを微修正できるのか心配です。 下記は、VBAコード行数を少なく、簡単な内容のコードに限定し、誰でもできるように考えました。見慣れないとすればEND(xlUp)、ForNext,PrintOutしか 使ってません。 例データ A1:C9 領収明細 連番 相手 領収額 1 A商事 100 2 B産業 200 3 C商店 300 4 D工業 400 5 E物産 500 6 F洋行 600 7 G建物 700 A列は連番で、空白でよい。プログラムで振ります。 Sheet2に 5 領収書 E物産 殿 請求金額 500円 のうち (1)領収書、殿、請求金額は、手入力(1回だけ、不動文字だから)。 (2)500円のセルに#、###1円の書式設定。1回だけ。コードでもできるが、コードを簡単のために。 (3)関数の設定。この場合は得意先名、領収金額の2箇所。 関数はVLOOKUPを使う。Sheet2で、項目をセットしたいセルに入れるわけです。 得意先セルは =VLOOKUP($A$1,Sheet1!$A$3:$C$11,2,FALSE) 領収金額セルは =VLOOKUP($A$1,Sheet1!$A$3:$C$11,3,FALSE) 2,3はSheet1の表のなん列めかを指定している。 印刷コード Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") '---最終行 d = sh1.Range("B65536").End(xlUp).Row MsgBox d n = 1 '---最終行まで自動採番 For i = 3 To d sh1.Cells(i, "A") = n n = n + 1 Next i '----番号をSheet2のA1に一時的にセット For i = 1 To d - 2 sh2.Cells(1, "A") = i sh2.Range("A2:H10").PrintOut 'A2:H10を印刷 Next i End Sub A1:h10は実際に合わせて変えて指定してください
その他の回答 (2)
何となくやりたいことは分かりますが、それぞれのシートがどうなっている かも分かりませんし・・・。 詳細を書いて頂くと、質問者様の意図する回答が得られるかもしれませんよ。
お礼
すみません。これからは気をつけます。 ありがとうございました。
- papayuka
- ベストアンサー率45% (1388/3066)
ソースを書くには漠然としすぎています。 フリーのものならvectorあたりで見つかります。 http://www.vector.co.jp/soft/win95/business/se383674.html http://www.vector.co.jp/soft/win95/business/se282212.html
お礼
ありがとうございました。 カスタマイズが難しいけど、 基本の動作はわかりました。 ありがとうございました。
お礼
こんにちは。 すみません。 でも、ご回答は確かに受け取り実行しました。 基本にさせていただいてカスタマイズを実行しようと思います。