• ベストアンサー

EXCEL:領収書発行のマクロ

おはようございます。 EXCELで領収書の発行のマクロを考えています。 入力sheetは各セルに自動採番(マクロで取得)、日付や相手、金額を入力します。転記sheetは、入力sheetで入力した内容を行ごとにマクロで保存していきます。 このような仕様のEXCELフリーソフトか、記述の参考となるマクロを教えてください。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.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は実際に合わせて変えて指定してください

tabtab9
質問者

お礼

こんにちは。 すみません。 でも、ご回答は確かに受け取り実行しました。 基本にさせていただいてカスタマイズを実行しようと思います。

その他の回答 (2)

noname#123709
noname#123709
回答No.2

何となくやりたいことは分かりますが、それぞれのシートがどうなっている かも分かりませんし・・・。 詳細を書いて頂くと、質問者様の意図する回答が得られるかもしれませんよ。

tabtab9
質問者

お礼

すみません。これからは気をつけます。 ありがとうございました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

ソースを書くには漠然としすぎています。 フリーのものならvectorあたりで見つかります。 http://www.vector.co.jp/soft/win95/business/se383674.html http://www.vector.co.jp/soft/win95/business/se282212.html

tabtab9
質問者

お礼

ありがとうございました。 カスタマイズが難しいけど、 基本の動作はわかりました。 ありがとうございました。

関連するQ&A

  • 行コピーして、今日の日付の行に貼り付けるマクロ

    こんにちは、エクセルマクロについて、助けて頂きたく質問させていただきました。 添付しました画像のような表があり、 セルA2に「=TODAY()」が入っていて、セルB2から右は別シートのデータを参照しています。 マクロを実行すると、2行目を行コピーし、セルA3以下の日付からセルA2の日付(今日の日付)を探し出して、行貼り付けしてほしいです。 行コピーや値で貼り付けはマクロの記録を使って、詳しくない私でもなんとか作ることはできるのですが、 今日の日付を探し出して、そこに貼り付ける。というマクロは作れませんでした・・・。 お助け下さい、宜しくお願いします! ※補足します セルA2の今日の日付は便宜上入力しているだけです。無い方がマクロを組みやすいのなら、無くせます。

  • マクロを作成するマクロを作成するには(Excel)

    すでにあるシートを見やすいように加工するマクロ(マクロ1とします)(並び替えたり、項目名の変更など)を作成し、それをマクロブックにして汎用運用しています。それで出来上がったシートに特定のセルをダブルクリックすれば、そのセルに今日の日付がセットされるマクロ(マクロ2とします)をその都度手書きで作成して実行しているのですが、そもそも前記のマクロ1の中にマクロ2を作成するマクロを記述したいのです。またマクロ2は特定シートにのみ有効となるように当該シートにはりつけています。作成方法をどなたかご教授よろしくお願いします。

  • 別シートの行を選択し対象列を転記するマクロ

    シート2のA~F列までデータがあります。 行数は10,000行です。(月ごとに100行くらい追加されます。) A列は項目がNO.で半角数字が連番で入力されてます。 セルA2→1 セルA3→2 セルA4→3 . . . セルA10000→9999 セルA10001→10000 という感じです。 シート1の セルI9に番号を入力すると シート2のその番号の行のB~F列の値を シート1のJ9~N9列に転記したいです。 例えば シート1のセルI9に100と入力したら、 シート2のA列が100と入力されているセルはA101ですから 101行目となります。101行目の各列の値を転記します。 ↓ シート1のセルJ9にシート2のセルB101の値を転記 シート1のセルK9にシート2のセルC101の値を転記 シート1のセルL9にシート2のセルD101の値を転記 シート1のセルM9にシート2のセルE101の値を転記 シート1のセルN9にシート2のセルF101の値を転記 シート1もシート2もセルの書式設定は標準。 B,E,F列は半角英数字の組み合わせで C,D列は半角数字のみです。 たまにF列に空白がある行があります。 B,F列は数字のみの場合もあります。 B,C,D,F列は数字のみの場合 「数値が文字列として入力されています」 となっています。 マクロで行いたいのですが記述そのものを教えてください。

  • EXCELのマクロで。。。

    シートAのセルC2の値(数字)を シートBのE、F、Gの各列のうち空いている一番左のセルで、かつ、D列に何か書いてある一番下の行のセル に転記したいです。 たとえば、シートBが図のような場合にはF28です。これが毎回、変化します。 マクロの記述を教えて下さい。よろしくお願い致します。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。

  • 【ExcelマクロVBA】抽出したデータをリストボックスで表示させるマクロ

    Excelであるセルに入力したデータを別シートから抽出して、別セルにリストボックスで表示させる方法が分らなくて悩んでいます。 例えば、下のような価格表があって   <A列> <B列> <C列> 1 りんご A店  100円 2 りんご B店   90円 3 すいか A店  950円 4 すいか C店 800円 5 みかん D店  100円  ・  ・   ・  ・  ・   ・ 入力シートが別シートにあり、   <A列> <B列> <C列> 1 2 3 セルA1へ例えば「すいか」を入力(リストボックスから選択できるようにしてあります)した場合、B1は「A店」か「C店」のみが、C1は「950円」か「800円」のみを選択できるようなマクロを作りたいと思っています。この価格表は流動的で毎日更新されています。A列の品名は絶えず更新し、C列の価格も変動しているのでLookupなどの関数では無理ではと思っていますがマクロだと可能でしょうか? なお、この入力シートを別シートへ転記させて活用するつもりで 入力ミスや空欄をチェックさせて転記を中断(MsgBox等)させたいのですが、セル指定で判断させるのではなく(A列を全て埋める必要はありません)、例えばA1に品名が入力した場合、1行目の該当セル(記入必須項目)の空欄が無いこと・入力が正しいかをチェックする様な条件分岐のマクロ記述方法を教えてください。 説明が拙いかと存じますが、宜しくお願いします。

  • EXCEL2010 マクロにつきまして

    excel vbaでマクロが作りたいのですが、まったくの初心者で 試行錯誤していますが、なかなか出来ずに困っています。 どなたか、教えていただけませんでしょうか。 ○sheet1 --日付---|A-B-C -------------------- 2013/1/20|1 2 3 2013/1/21|4 5 6 2013/1/22|7 8 9 2013/1/23|5 4 3 2013/1/24|4 5 6 2013/1/25|4 4 4 2013/1/26   ・   ・   ・ ○sheet2 実行ボタンを作成 日付を入力して実行ボタンをクリックすると指定した日付のデータが抽出される 例 2013/1/22 → 実行 A B C ------- 7 8 9 このようなマクロを組みたいのです。 わかりづらくて申し訳ありません。 また、初心者向けのおすすめの参考書や、ホームページがありましたら 教えて頂けると助かります。

  • マクロでActivecellの1行下に移動したい

    EXCELのマクロで、あるセルにデータを入力した後、マクロボタンで1行下のセルをアクティブセルにしたいのですが、どう記述したらいいでしょうか?

  • マクロ:他シートにデータをコピーしたい

    Excelのマクロについてです。 シート1にデータが有り、その中のB列に「済」と記入されている行のみ シート2にコピーして転記したいのです。 これだけなら簡単なのですが データ内には複数行にまたがってのセル結合がされてあったり 図形描写やテキストボックス等も混ざってあります。 それらもまとめてコピーしたいのですが、マクロで何とかなるのでしょうか?

  • Excel2000ののマクロでセルを埋めたいのですが

    みなさん、こんにちは。 Excel2000ののマクロを使ってでセルを "*" で埋めたいのですが、どのような 構文にすればよろしいでしょうか? "*" で埋めたい列は "Sheet2" の A , B , C ですが、行数は毎回変わります。 何行埋めるか、の変数は "Sheet1" の A1 に入っています。 繰り返し処理になると思うのですが、よくわかりません。 どうぞ、よろしくお願いします。

専門家に質問してみよう