• ベストアンサー

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

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

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

  • ベストアンサー
  • 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/17069)
回答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さんのご回答と同じ内容なのでしょうか。本を買いますのでよろしかったらお持ちの本とそのどこを読めばよいかをお教え頂けませんか。