• 締切済み

vba 作成

博学の方ご教授願います。 office2007のVBAで下記の様なものを作りたいのでお願いします。 SHEET1 A列に管理番号 C列にお客様名 D列に通し番号 H列に入庫日 が入ったシート があり在庫に一つづつ入庫シートを張り付けています。 今は一枚ずつ手で書いてますがそれを自動で出せるようにしたいのです。 SHEET2にその入庫シートを作りA列C列D列H列を1から順番にSHEET2の入庫シート に入れた上プリントアウト出来るものを作成したいです。 希望はSHEET2のC1にSHEET1のH列の入庫日を SHEET2のE2にSHEET1のD列の通し番号 SHEET2のE3にSHEET1のC列のお客様名 SHEET2のL1にSHEET1のA列の管理番号 を 1から順番に自動入力した上プリントアウト出来ればありがたいです。

みんなの回答

  • CC_T
  • ベストアンサー率47% (1038/2201)
回答No.1

accessで帳票印刷・・・・というのは置いときましょうかね。 ひねりも無いベタなものですけど、どうぞ。 sheet1の2行目(gyou=2)から初めて、下に向かって通し番号(C列)のセルの値がゼロ(未記入)になるまでsheet2の指定セル情報を更新しては印刷、を繰り返します。 macro2はおまけ。 指定の通し番号のセルを探して、その行の分を印刷します。 ~~~ Sub Macro1() ' Dim gyou As Integer ' gyou = 2 Sheets("Sheet2").Select While (Sheet1.Cells(gyou, 3) > 0) Cells(1, 3) = Sheet1.Cells(gyou, 8) Cells(2, 5) = Sheet1.Cells(gyou, 3) Cells(3, 5) = Sheet1.Cells(gyou, 2) Cells(1, 12) = Sheet1.Cells(gyou, 1) ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _ :=True, IgnorePrintAreas:=False gyou = gyou + 1 Wend End Sub Sub Macro2() ' Dim gyou As Integer Dim Obj As Object numb = InputBox("印字対象の通し番号を入力", "物品貼り付け票印刷", "") If numb = "" Then MsgBox "無効な入力です。中断します" Exit Sub End If Set Obj = Worksheets("Sheet1").Cells.Find(numb, LookAt:=xlWhole) If Obj Is Nothing Then MsgBox "指定された「" & numb & "」がリストにありません。" Exit Sub End If gyou = Worksheets("Sheet1").Cells.Find(numb).Row Sheets("Sheet2").Select Cells(1, 3) = Sheet1.Cells(gyou, 8) Cells(1, 5) = Sheet1.Cells(gyou, 3) Cells(2, 5) = Sheet1.Cells(gyou, 2) Cells(1, 12) = Sheet1.Cells(gyou, 1) ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _ :=True, IgnorePrintAreas:=False End Sub

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAでソートして、貼り付けのやり方

    (条件及び操作) 1 シートが2つあります。(元データ と 名簿シート)という名前。 2 名簿シートのH2に数字を入力する。元データのシートの1行目にある、番号と一致する列を操作する。 3 元データの対象の列で、まずD列(組ごと)に、1組・2組をソートする 4 次に、対象の列(科目:国語や理科など)事に、○をソートする 5 ソート後に、番号、名前、出身と○をコピーする。 6 その後、名簿シート(1組でソートしたものは、B2、2組でソートしたものはE2)に貼り付ける 7 対象の列の科目名(国語なら国語を)をA1に貼り付ける 8 元データのソートを解除する (備考) 番号も科目も100ぐらいあります。 これらの(条件及び操作)を元に、名簿シートのH2に任意の数字を入力して、元データの対象の列を上記(1~8)の操作を行いたいと思います。 《シート名:元データ》 A列   B列   C列   D列   E列   F列   G列   H列   I列   ・・・                       1    2     3     4    5   ・・・   番号  名前   出身  組    国語  理科   英語   数学  社会  ・・・ 001 Aさん  東京    1     ○                ○   ○  002 Bさん  沖縄   1     ○                 ○   ○  003 Cさん  鹿児島  1     ○                     ○  004 Dさん  青森    1     ○                     ○  005 Eさん  北海道  2     ○          ○  006 Fさん  京都   2     ○          ○     ○ ・ ・ ・ 《シート名:名簿シート》      A列   B列   C列   D列   E列   F列   G列   H列    国語     1組              2組     番号   名前   出身  番号   名前   出身  番号入力      お忙しい中、大変申し訳ございませんが、どうぞよろしくお願いします。 また、質問の内容などがわかりづらいなどの事がありましたら、ご指摘ください。

  • Excel 横列で3列飛びに順番の番号を自動化する方法

    Excelで、横列に3列飛びに順番の番号を自動化する方法を教えてください。 例えば、Sheet1のA1に初期値20から始め、終わりがSheet2のU1であったとします。 例 Sheet1 A1=20,B1=空白,C1=空白,D1=空白,E1=21,F1=空白,G1=空白,H1=空白,I1=22,・・・・・,AC1=27 Sheet2 A1=28・・・・・・・・・・,U1=33 どうすれば、これらの処理を自動化できるのでしょうか? よろしくお願いします。

  • エクセル VBA

    Sheet1(データベース)のA列に会社名(約30社) B列に管理番号0001~9999の番号 C列に取扱い品名(同じ会社名で複数あります) D列以降はその他の詳細(列は不規則)があります。 Sheet1をもとに会社名ごとのシートを作成し、管理番号順に並べ替えをしたいのですがうまくいきません。 どなたかお知恵をお貸し下さい。

  • VBA 異なるファイルを指定して文字を抜き出す

    エクセルVBAについてご質問させて頂きます。 お詳しい方、ご教授頂ければ幸いです。 ファイルAを展開中に、別ファイルであるファイルB(ユーザ指定)の特定シートのセル「D2」及び「E2」から下のデータを順番に参照し、条件に合致する列のセル「B2」及び「C2」の文字列を繋げて改行し、 ファイルAの特定シートのセル「E2」から下に順番に貼り付けて行くには、 どのようにすれば良いでしょうか。 例   条件: D2=さ E2=た        ・ファイルB(指定) 特定シート        A    B    C    D    E    1    2   0    あ    か    さ    た    3   0    あ    き    さ    た    4   0    い    か    さ    ち    5   0    い    き    さ    た    6   0    う    か    し    た    7   0    え    か    し    ち    8   0    え    か    し    た    ・ファイルA特定シート       A    B    C    D    E    1                            2                      あ                           か    3                      あ                           き    4                      い                           き  実力不足で丸投げの形となってしまい申し訳ありませんが、 よろしくお願い致します。    

  • Excel,VBA シートの自動作成、データ

    Sheet 1 に住所録 Sheet 2~50までに同じフォーマットで A  B  C~E F~H No. 名前 S~L S~L と並んでいてA4から名前 C~の列には各数量が50行ほど入力されています。 Sheet 2~50 までを名前ごとにまとめたSheet を自動で作成したいです。 Sheet1とSheet2~50の名前順は同じです。 例 Sheet51 シート名 Aさん    DEF列    SML 1行目1,2,3(Sheet2AさんのC~E数量) 2行目2,2,2(Sheet2AさんのF~G数量) 3行目2,2,2(Sheet3AさんのC~E数量) 4行目4,4,4(Sheet3AさんのF~G数量) 同じようにSheet 53 Bさん となるようにループする方法をご教授ください。 よろしくお願い致します。

  • VBA

    エクセルVBAについて教えてください。 シート1 A列   B列   C列   D列   E列    F列 ・・・            商品A  商品B  商品C  商品D・・・ 日付  名前(1)   3           2     1 日付  名前(2)         1     3  ・     ・     ・     ・     ・    ・  ・     ・     ・     ・     ・    ・  ・     ・     ・     ・     ・    ・ シート2 A列   B列    C列    D列    E列 日付  名前(1)   商品A   3               商品C    2               商品D    1 日付  名前(2)   商品B    1               商品C    3 ・      ・      ・      ・  ・      ・      ・      ・ ・      ・      ・      ・      上記のような、エクセルで作ったシート1があります。 これを、シート2のようにコピーしたいと思っています。 商品は20列あり、数字が入っている列と入っていない列があります。 数字が入っている列の商品と数字をコピーして、すべてコピーが 終わったら次の行のコピーしていく。 行は100ほどあります。 よろしくお願いします。

  • エクセルVBAについて教えてください

    エクセル2003 シート1     A       B      C 1  3月1日 A 100     *A列はカレンダーコントロールより選択としています 2  4月1日 B 100 3  3月1日 C 200     *B列はコンボボックスより選択としています 4  3月1日 D 200 5  4月1日 E 300     *C列は直接入力としています 6  4月1日 F 300 7  3月1日 G 100 8  4月1日 H 200 9  3月1日 I 200 10  4月1日 J 100 上記シート1の表のC列を下記シート2のC列に条件集計する シート2    A       B       C 1  3月1日   A~E     500    *選択した日付ごと及びA・B・C・D・Eの集計  2  3月1日   F~J     300    *選択した日付ごと及びF・G・H・I・Jの集計     3  4月1日   A~E     400    *選択した日付ごと及びA・B・C・D・Eの集計    4  4月1日   F~J     600    *選択した日付ごと及びF・G・H・I・Jの集計  すいませんが上記コードを教えてください 困ってます よろしくお願いします      

  • エクセルVBAによる、行の整理

     始めまして、よろしくお願いします。  シート1とシート2に次のようになっています。 シート1      A  B  C   1     2       ・      99      100 9     101 5     102 3       103 7    104        105   ・  ・ シート2      A  B  C   1     2       ・      99      100 9  3  4  ・・・・     101 5  3  2  ・・・・   102 3  1  0  ・・・・     103 7  5  3  ・・・・  104  105  106 9  ・・ 107 5  ・・ 108 3  ・・ 109 7  ・・ 110  111 9  ・・ 112 5  ・・ 113 3  ・・ 114 7  ・・ 115 116 ・  ・  ・  ・  シート1、シート2のA列にはデーター銘の番号が。シート2のB、C、D・・・列にはデーターが入っています。シート1のA列データー銘の番号の追加(データー銘番号1)、順番を変え、マクロを実行すると シート1      A  B  C   1     2       ・      99      100 3     101 7     102 1       103 9    104        105   ・  ・ シート2      A  B  C   1     2       ・      99      100 3  1  0  ・・・・     101 7  5  3  ・・・・   102 1       103 9  3  4  ・・・・  104  105  106 3  ・・ 107 7  ・・ 108 1   109 9  ・・ 110  111 3  ・・ 112 7  ・・ 113 1   114 9  ・・ 115 116 ・  ・  ・  ・ シート2の(100-103、106-109,111-114の3グループ)行ごとデーターすべてが、シート1A列のデーター銘番号順に整理したいと思います。実際は整理されるデーター銘番号や、行ごと(ここでは整理される100-103、106-109,111-114の3グループですが)の数はかなり多くなります。シート1で削除されたデーター銘番号は、シート2ではデーターすべてが削除されます。(ここではデーター銘番号5がそうです)  解る方、できる方、よろしくお願いします。

  • 質問:VBAでデータを転記したい

    ExcelのVBAで給与支払管理表と源泉徴収表作成用のとりまとめシートを作っております。で、この2表の間でデータをやりとりしたいのです。 表の関係は以下の通りです。それぞれの項目を、仮に(A-a)(A表のaという項目)というように表記します。 【支払内訳表】(仮にA表) A4に氏名(A-a) B4に日額(A-b) C4に勤務日数(A-c) D4に税引き前支給額(A-d) E4に税額(A-e) F4に交通費(A-f) G4に税引き後支給額(A-g) A2に支払件名(cf.例えば営業課など)(A-h-a) e2に何月分かの情報(A-h-e) を入れています。 【支払額個人管理表】(仮にB表) A列に税引き前支給額(B-d) B列に税額(B-e) C列に税引き後支給額(B-g) D列に交通費(B-f) E列に支払内容(B-h) を入れています。 この二つにおいて、A表を開いたときに、 1)(A-a)の文字列で、B表の該当のシートを検索(シートに支払対象者の名前をつけています) 2)(A-d)を(B-d)に転記 3)(A-e)を(B-e)に転記 4)(A-f)を(B-f)に転記 5)(A-g)を(B-g)に転記 6)(A-h-a)と(A-h-e)の文字列を統合して、(B-h)に入れる。 (ただし、(A-h-a)と(A-h-e)の間には、半角スペースを設ける) という作業をさせたいのです。また、A表はいくつもあるのですが、B表は一つだけですので、データが入っている行の下にA表のデータが自動的に入るように設定したいのです。(End(xlUp).でも使うのでしょうか) 複雑で申しわけございません。 ご教授頂けましたら幸いです。

  • エクセルVBA/抽出・貼付け

    下記を行いたいのですが、どのようなコードになるのでしょうか? シート001(入力用) (1)A1~A50、B1~B50、C1~C50、D1~D50  に数値、E1~E50に文字列 (2)F1~F50、G1~G50、H1~H50、I1~I50  に数値、J1~J50に文字列 ※空白行混在 シート002(計算用) シート001に作ったコマンドボタン:クリックにより、 シート002を表示させ、A1~E100に、 シート(1)のA1~E50とF1~J50の空白行以外を連続して 反映させたい。並べ替え用など別シートを用いずに、 VBAコード内で処理したい。