プロが教えるわが家の防犯対策術!

是非教えてください。急いでいます。
エクセルで請求書台帳管理をしています。
Sheet1に各行に各ユーザ毎の情報が10項目程度あるのですが、請求書に選択した行のユーザに対して、Sheet2に作ってある請求書フォーマットから請求書を出力したいと思っています。
Sheet1で印刷したい行の左側に○つけた時だけ、各項目の内容をSheet2の請求書フォーマットにデータを自働で移して印刷することは出来ますか?
○でなくてもいいので、とにかく選択した行の情報だけを別シートに自働で移せる方法を教えてください。
とても急いでいるので、どうか宜しくお願いいたします。

A 回答 (6件)

> マクロ良く分からないのですが、



まずALTとF11そ同時に押してください
するとVBE(マクロ編集画面)が開きますので左側のSheet1などと書かれている
(○を入力したいシートの名前)でダブルクリックすると
右側に入力できる画面が開きますのでそこに

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
Range("A:A").Clear
Range("A" & Target.Row).Value = "○"
End If
End Sub

をそのまま貼り付けてください。
既に何かあればそれはそのままにして最終行の下に入れてください。

この回答への補足

ありがとうございます。出来ました。本当に助かります。ありがとうございます。
何回も申し訳ないのですが、後、2個質問させてもらっていいですか?

一つ目ですが、今回の一連の仕様の中で、○をA列として他の列がB~T列まで有るのですが、その内のF~J列はどれか一つしか選択できないようにするにはどうすればいいですか?うまく書けないのですが、例えばF列目に◎を選択したら、残りのG~J列には何も出ない様にしたいです。当然台帳ですので印刷したい行以外の行も同じようにしたいです。

二つ目ですが、これは一つ目の質問に絡むのですが、○で印刷行を選択した後、F列目の◎が付いたところをSheet2の請求書印刷に教えていただいたVLOOKUPでデータを移した後、◎が出ないG~J列の分に「0」が出てしまわない様にするにはどうすればいいですか?

何回も申し訳ありませんが、お願いします。

補足日時:2009/09/05 21:49
    • good
    • 1

> ちなみに○を重複させないように、今回印刷したい行に○を付けたら、他の行


> の○は消してしまうということは出来ますか?
> 前に印刷した時の行の○を消し忘れたときに対応できるようにしたいのですが?
> また○をプルダウンで出したいのですが、どの様にすればいいですか?

該当するシートのマクロに以下のコードを記載してください。
A列のセルを選択すると選択したセルに○が表示されます
列を変更したい場合
Target.Column = 1の1を列数にあわせて変更してください。
Range("A:A").ClearのA:Aを列にあわせて変更してください。
Range("A" & Target.Row).Value = "○"の"A"を列にあわせて変更してください。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
Range("A:A").Clear
Range("A" & Target.Row).Value = "○"
End If
End Sub

この回答への補足

すみません。
マクロ良く分からないのですが、
マクロ開くと、以下が行がすでにあるのですが、
ここから
Sub Macro1()
'
' Macro1 Macro
'
Application.Goto Reference:="Macro1"
End Sub
ここまでがすでにあります。

上記を編集して
Sub Macro1()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then
Range("A:A").Clear
Range("A" & Target.Row).Value = "○"
End If
End Sub
とすればいいと思うのですが、これで実行するとEnd Subがあるのに
「End Subが必要です」のエラーが出るのですが、どの様にするのが正しいですか?

補足日時:2009/09/05 19:38
    • good
    • 1
この回答へのお礼

ありがとうございます。
早速試してみます。
また質問するかもしれません。
お願いします。
とりあえずお礼まで

お礼日時:2009/09/05 07:47

マクロで行うのが一番の方法だと思いますが


できないのであれば

シート1に請求情報が一行一件づつある。
シート2に印刷する請求書の様式がある。
という条件でしたら

シート1に顧客コードみたいなのがあればそのキーでソートしておく
シート2のシート1から転記するセルに顧客コードをキーとするVlookup 関数でシート1から抽出したデータを表示するようにする。

シート2に対象の顧客コードを入力しては印刷するというのはどうでしょう。
    • good
    • 0

マクロならば可能ですがそうでない場合にはワードで請求書を作りワードの差し込み印刷を利用して対応するのがよいでしょう。


いずれにしろ自動で印刷となりますとマクロで対応することになりますね。
    • good
    • 0

シート範囲を選択して○の列にオートフィルタを掛けて、抽出したデータを丸ごとコピーし、任意のシートに貼り付けます。



http://www.eurus.dti.ne.jp/~yoneyama/Excel/filte …
    • good
    • 0
この回答へのお礼

ありがとうございます。
内容確認してみます。
色々あるんですね。試してみます。

お礼日時:2009/09/04 21:38

どのセルにデータが入っているのか分かりませんが


たとえばSheet1のA1からC7までデータがあるとした場合
Sheet2のデータを取り出したいセルに
=VLOOKUP("○",Sheet1!$A$1:$C$7,2,FALSE)
とすれば○の付いた行のデータが取り出せます。
上記の場合はA列に○を入力しB列のデータを取り出しています。
2を3にすればC列のデータが取り出せます。
    • good
    • 0
この回答へのお礼

ありがとうございました。
早速試してみます。
ちなみに○を重複させないように、今回印刷したい行に○を付けたら、他の行の○は消してしまうということは出来ますか?
前に印刷した時の行の○を消し忘れたときに対応できるようにしたいのですが?
また○をプルダウンで出したいのですが、どの様にすればいいですか?

お礼日時:2009/09/04 21:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています