• ベストアンサー

次のような見積書フォームを作成することは可能でしょうか。

よくある見積書の形式通りなのですが、明細行は内容・明細・数量・単位・単価・金額・備考の横並びセル群から成り、その明細行は下方へ適当回繰り返されて、最後にそれらを合算する小計行が来ます。 そこでご質問は、3行程度の明細行+小計行の簡単なものを作っておいて、最初の一行を記入すれば自動的に4行目の空欄明細行が生成されて、小計行は計算結果を表示しつつ自動的に一行繰り下がる、というものは可能でしょうか。同様に2行目を記入すれば新しい明細行の5行目を小計行の一段上に生成したいのです。 エクセルで見積書を作ってあげるのですが、見積が大量になった時に明細行が不足するのを恐れてPC上でトイレットペーパーのように長大な見積用紙を用意した挙句にオートフィルタを使って短縮表示するという無駄と使いにくさを解消したいのです。 

noname#96725
noname#96725

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

  • ベストアンサー
  • WWolf
  • ベストアンサー率26% (51/192)
回答No.6

No2です。 マクロはエクセルでAlt+F11でVBAが出てきます。 左側にあるプロジェクトのSheet1を右クリックし、コードの表示を選択。 Sheet1(コード)という画面が出てきますのでそこに下記を貼り付けし。 No2で書いてあったように 1.A2~G2まで適当なデータを入力。 2.H2をクリックするとA5~G2に転記される。 3.I2をクリックすると新規見積書というメッセージボックスが表示。 練習としてやってみて下さい。VBAの楽しさも分ると思いますし、質問者さんのしたいことも、イメージとして出来てくると思います。 頑張ってください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Worksheets(1) La = .Range("a65536").End(xlUp).Row If La = 2 Then La = 5 Select Case Target.Column & Target.Row Case "82" For i = 1 To 7 .Cells(La + 1, i).Value = .Cells(2, i).Value Next Case "92" MsgBox "新規見積書作成" End Select End With End Sub

noname#96725
質問者

お礼

有難うございました。例文のコピペでイントロだけですが面白さを体験出来ました。いくらかマクロが解れば今回の見積書だけでなくエクセル関数を組合せた原始的「ソフトもどき」製作もブラッシュアップ出来るかもしれません。

その他の回答 (5)

noname#11841
noname#11841
回答No.5

#1です。 >仰ることはNo2のWWolfさんのご回答と同じ内容なのでしょうか。  いえ、違います。 >本とそのどこを読めばよいかをお教え頂けませんか。  ボタンにマクロを登録するやり方が、参考URLにありますので、ご覧になってはいかがでしょうか。

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_01.html
noname#96725
質問者

お礼

マクロをご紹介頂き有難うございました。 どうやらマクロを使う事で解決出来そうな予感がします。かなり険しい道のようですがこれを手掛かりにしてもっとエクセルを楽しもうと思います。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

前の質問の続きでしょうが、質問表現が前と変わらない(あまりわかりやすくなっていない)ようですね。 (1)1つは元データがどういう状態(どういう入力を、どこにするのか)なのか書いてないのですが、直接見積書に人手で見積もりデータを入れて行くのでしょうか。それではワープロで清書するのとあまり変わりませんが。 (2)仕事で他の担当者が1行1品目の売り上げデータが多数行連なっているのでしょうか。並び順は。連番とかは。 これらのことが処理する上で肝心です。 (3)どうせいくら見積書の行を増やしても、その限度を超える場合が出る可能性あり。 この件などのため、本件はVBAを使えるか、その覚悟がないと難しいでしょう。 本番の仕事をコンピュターで処理するにはエクセルならVBAを使わないとできないと個人的に思っています。 印刷の自動化もありますのでね。 >挙句にオートフィルタを使って短縮表示するという無駄と使いにくさを解消したいのです・・・ 私なら、オートフィルタでなく、少ないときは小計・合計を上に上げ、罫線もそのようにする。 オーバーしたときは、明細は別シートに繰越し、宛名など上部をコピーした形で自動的に作るとか、VBAで処理しますね。

noname#96725
質問者

お礼

ご回答有難うございました。 >質問表現が前と変わらない(あまりわかりやすくなっていない)ようですね。 貧文で申し訳ありません。 >本件はVBAを使えるか、その覚悟がないと難しいでしょう。 そのようですね。お蔭様でその覚悟を固めつつあります。 >エクセルならVBAを使わないとできない 鬼に金棒というのでしょうか。それでなくともすごいソフトだと思っています。これを機会にもっと貪欲になります。

noname#11836
noname#11836
回答No.3

私の場合(請求書ですが)明細入力は別シートにしています。 請求書は、印刷する形式にしていて、 請求書の明細は、別シートから転記しています。 転記する明細がなくなったときに合計(質問者様の言う小計?)を書いています。 逆の操作になりますが、 これでよいのではないかと思います。

noname#96725
質問者

補足

たしかに請求書も似た様な考えで出来ていますよね。 明細行が終わった所でオートサムを押せば良い訳ですが、でもエクセル操作に不慣れな人に使って貰うので明細の記入と数量・金額を決まった所に打ち込むだけで(またはそれに近い形で)総合計まで含めて書類が自動的に完成するようにしてあげたいのです。

  • WWolf
  • ベストアンサー率26% (51/192)
回答No.2

質問者さんの仰っていることは、 1.シート2にデーターベース的な物を作り、シート1に印刷用フォーマットを作成しておきそこに出るようにしたい。 2.シート2の追記方法として、質問内容に書いてある仕様でしたい。 この二点ですか? Q1 フォームとはVBAで言うFormではないと捕らえて良いのでしょうか? Q2 データーは蓄積させるべきですか? その辺は補足をお願いすることとして・・・ 可能 Or 不可能で言えば、細かい仕様がわかりませんが、”可能”であると思います。 質問者さんのマクロに対しての知識が必要ではありますが、この質問ではどこまでが質問者さんの求めていることかが把握できません。 下記は参考までに・・・ シート1の1行目のセル毎にA1=”内容”、B1=”明細”、C1=”数量”、D1=”単位”、E1=”単価”、F1=”金額”、G1=”備考”を入力し シート1の2行目に各々データを入力後、H2をクリックまたは選択するとシート1の5行目以降に追加していくマクロを記述しておきます。 シート1のコードに下記をCopy&Paste Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Worksheets(1) La = .Range("a65536").End(xlUp).Row If La = 2 Then La = 5 If Target.Column = 8 Then For i = 1 To 7 .Cells(La + 1, i).Value = .Cells(2, i).Value Next End If End With End Sub

noname#96725
質問者

補足

フォームは書式というつもりで書きました。紛らわしい書き方をお詫びします。 質問のまとめ1.2.はその通りです。 1)仰るように、予め一行の明細行(関数が埋め込まれているだけの空セル群)を他で用意しておき、或る簡単な動作をすることで(例えばH2クリック)その明細行を相対指定した場所 A(x+1)~G(x+1)に生成させ、それに見積りの打ち込みを済ませてからH3のクリックで次の新しい明細行を生成させるという動き方ならパーフェクトに希望に合致します。必要なのは空の行ですから用意する書式も質問に書いたような1種類でOKです。 同時に、加えて行く行の金額欄の数字だけは、明細行が増えるにつれて繰り下がってゆく小計行に合計させて行きたい。これはごく普通の見積書の形式と同じですから当然ですね。 このような仕掛けをワンセットとして、同じシート内に同様のセットを幾つもつなげて行きたいのです。各セットごとの小計はシートの最終行で合算して見積り完成です。 2)打ち込んだデータを蓄積させる事までは考えていません。便利だとは思いますが。 マクロは不案内です。サンプル記述を頂きましたが、どこにどのように貼り付けるかが解りません。ここは難しい事を一から教えて頂く場所ではありませんから指針だけをお教えください。

noname#11841
noname#11841
回答No.1

 ボタンを押すのはだめですか?  ボタンを押すと、小計行のすぐ上の行を行選択し、「編集」→「コピー」そして、「挿入」→「コピーしたセル」を実行するマクロを組めばよいのでは?

noname#96725
質問者

補足

マクロを使えばそんなボタンが出来るのですか?ならばその「マクロ」に私の解決が求められそうです。 そうなれば次の問題はどうすれば必要十分なマクロ知識が得られるか、です。たいがい何でも独学でやってきましたから簡単な学習の指針(マクロのどんな知識をどこで仕入れるか)を得れば何とかなるかも知れません。 仰ることはNo2のWWolfさんのご回答と同じ内容なのでしょうか。本を買いますのでよろしかったらお持ちの本とそのどこを読めばよいかをお教え頂けませんか。

関連するQ&A

  • エクセルで列が自動挿入する明細書

    エクセルVBAの勉強をしています。 見積明細書なのですが、横列は明細・数量・単位・単価・金額・備考の横並びセル群から成り、その明細行は下方へ数行繰り返されて、最後にそれらを合算する小計、消費税、合計金額行が来ます。 ここで聞きたいのが、数行程度の明細行+小計・消費税・合計行の簡単なものを作っておいて、最後の明細行に記入すれば自動的にもう一行の空欄明細行が挿入されて、小計行以下は計算結果を表示しつつ自動的に一行繰り下がる、というものはできるのでしょうか。

  • Excelで見積明細書を作成、小計の位置を自在に変更したい

    C列:「寸法」 D列:「数量」 F列:「単価」 G列:「金額(D列×F列)」 行2~行83まで G84セルにG列の合計が入ります。 こういう雛形の見積明細書で例えばC6セルに「小計」と入力すると、G2セル~G5セル間での小計をG6セル表示させるようにし、G7セルからは通常通りD列×F列の結果が表示され、さらにC15セルに「小計」と入力すると、G7セル~G14セル間での小計をG15セル表示させるようにし、最終的には全ての小計の合計がG84セルに結果表示させるようなことは可能でしょうか? マクロでないと出来ないなら、当方は知識を全く持ち合わせておりませんので、かなり困難かと思いますので、関数だけで対処できると助かります。 不足情報は補足致します。 よろしくお願い致します。

  • 一部セルを保護しながら書込みを続けるエクセルでオートフィルタ的な動きもさせたい

    関数を埋め込んだあちこちのセルを不注意で改変されないようにしながらしかもそれ以外のセルには記入を続け、同時にしばしばオートフィルタを使いたいのですが、一部セルのロックとシートの保護をすれば、オートフィルタが使えなくなります。 是非同様な機能を盛り込みたいのですが、何か方法があるでしょうか?お教え下さい。 具体的には全部で500行程度で7項目の小計で出来たごく普通の見積書ですが、実際の使用は100行程度です。 金額欄が空白である行を非表示にすれば印刷が無駄になりませんが、保護をするとオートフィルタが使えません。色々な方法を試みて丸一日経ってしまいました。この見積書を使うのはエクセル操作に慣れた人ではありません。 過去の質問を見ても私の疑問は解決出来ておりません。 見方を変えて、項目行を一行書き込むごとに同じデザインの項目行が生成されて、合計欄はそれを加えながら繰り下がって行く事が出来れば目的が同じでよりスマートな方法ですが、可能でしょうか? ご質問が二つになってしまいましたが、どちらでも結構です。よろしくお願いします。

  • 見積もりの有効期日を2ヶ月後にしたい

    見積もりをした日から 自動で2ヵ月後の表示を表したいのですが どうすればよろしいですか? 開いた日付はNOWで設定できますが、2行下に2ヵ月後を自動で あらわしたいのでお願いします。

  • 訂正印について質問します(見積書兼内訳明細書)

    リフォームするにあたり、本日注文書に署名捺印しました。 一点気になったのでお聞きします。 業者の方が、見積書兼内訳明細書に記入した時一段記入を間違え、 五箇所書き損じをしたのですが、 こちらの印鑑にて訂正印を…と言われ、訂正印を押しました。 普通、書き損じた方が訂正印を押すのではないかと、今になって思って、 不安になったのですが、これはよくあることなのでしょうか?

  • Excel2000 集計のコピーの仕方

    お世話になります。とても初歩的な質問ですが、宜しくお願いします。 エクセルで、データリストを入力したシートで、データ→集計とし、 「リストの下に集計行を挿入する」「現在の集計表と置き換える」に常に チェックを入れて集計しています。 すると、リストの下に小計が挿入され、左端にある1,2,3というところを クリックすることで、明細行が表示・非表示切り替えられますが、 小計行のみ表示させた状態(明細行は非表示で、画面には太字で「○○ 計 □」 みたいな状態の表が出来上がっている) で、この出来上がった表を別のシートにコピーして使いたいのですが、貼り付けると、必ず非表示になってる明細行まで貼り付けされてしまいます。 一行ずつ、小計行をコピーして貼り付けるか、一旦全部貼り付けて明細行を 削除していくかのどちらかしかないのでしょうか? いい方法をご存知でしたら教えて下さい。宜しくお願いします。 質問がわかりにくかったら申し訳ありません。

  • Excelで請求書を作成、印刷の際に条件が。

    お世話になります。 Excelで請求書を作成しようとしています。 1枚目の上部には、請求先と弊社の住所や振込先、請求合計金額等を記入し、その下にズラっと商品明細を打ち込んでいきます。最後に小計と消費税、全体の合計を入力する所があります。 (1)一番左の列に行番号を入れているので、予め行番号だけ入力しておき、商品明細を打ち込んだ行のみ印刷したいです。 (2)印刷する時に、1枚目は上部の住所等と商品明細、2枚目以降は商品明細のみ、商品詳細の最終ページで小計、消費税、合計の印刷をかけたいのです。 今はとりあえず、シートに分けて入力をして、それぞれ印刷をかけているのですが、計算が大変なのと、商品の明細がどのくらいになるのか、予め分からないので、入力するにも考えながらやっています。 何か良い方法はありませんか?宜しくお願いします。

  • 【Excel2007】 条件に合うセルをコピぺしたい 

    すみません、調べても解決できなかったのでご教授のほどお願いいたします。見積・内訳明細を作っていて壁に激突しました。 たとえば、sheet2のA1セルに【小計】という文字が入っているとして、その隣のセル(B2になります)に【小計】の計算結果を表示させていたとします ex)  A1     B2   【小計】   500,000 このB2の数字をsheet1のA3のセルに表示をさせたいのです。 ただし、A列のどのセルに【小計】が入るかわからないし、何個くらい小計が入るのかもわからないのです。 今まではcountIFやVLOOKUPを使ってやっていたのですが、見積作成時に途中行を削除したり、挿入したりとちょこちょこシートをいじっていしまい、計算式が消えたりして、その都度の確認作業に時間がかかってしまって・・。 VBAでやらなきゃむりかも・・と思ってコーディングを試してみたりしたんですが、なにせVBA勉強中で・・エラーばかりで参ってしまいました(汗 どなたか、おしえてください!!お願いたします<m(__)m><m(__)m>

  • 任意のセルに小計、合計と入力したら自動計算してくれ

    エクセル2007でVBAを何度も挫折しています 任意のセルに小計、合計と入力したら自動計算してくれるVBAの方法を教えてください セル G21 商品名 L21 詳細 V21 数量 X21 単位 Z21 単価 AD21 金額(V21:数量*Z21:単価) の何処にでもある見積書なのですが 任意のG行に小計・合計と入力すると AD行に金額が自動で入力させるVBAの仕方が知りたいです。 3行ほどの見積もあれば100行を超える見積もあります 教えてください。

  • Excelの集計表で固定していない小計があり、計算結果を上位の小計行に入れたい

    エクセル2K使用で300行程度の表があり、2行目まではタイトル行です。 品名L列 個数M列 単位N列 単価O列 金額P列 備考Q列← 2行目 完成品 1 組 (小計の計)(総合計) ← 3行目 小計   2   口  (O5:O8) (M*O)     ← 4行目 品名A  2   個 10 20 ← 5行目 品名B  3   本 10 30      ← 6行目 品名C  2   個 5 10      ← 7行目 品名・  ・ ・ ・ 20      ← 8行目 品名・  ・ ・ ・ 20      ← 9行目 小計 (O :O ) (M*O) ←・行目 品名・  ・ ・ ・ ・      ←・行目 品名・  ・   ・ ・ ・      ←・行目 品名・  ・   ・ ・ ・      ←・行目 品名・  ・   ・ ・ ・      ←・行目 ・ ・  ・   ・ ・ ・      ←・行目 ・ ・  ・   ・ ・ ・      ←・行目 合計            (小計の計) L列の一番上の小計は固定です、2ツ目以降の小計は固定していません。 P列の金額を上位の小計列の単価に入力して再計算したい 合計はP列(表の最終行)の合計金額欄に表示したい、3行目完成品単価は合計 金額の(小計の計)と同じ金額です、3行目を見積書に転記したいと思っています。 集計表には空白セルが存在します。 宜しくお願いします。

専門家に質問してみよう