• ベストアンサー

エクセルの単票を一覧表に

エクセルで作った単票(何ファイルにもわたってある)を一つのファイルに一覧表にする簡単な方法を教えてください。 具体的には、単票には、 B2=日付 B3=注文番号 B4=得意先名 B12=商品名 B13=商品1 C12=数量 C13=商品1の数量 と入力されています。 これをデスクトップ上にある「在庫一覧」というファイルに一覧表に移したいのですが。何度も入力しなくていいようなマクロがあったら教えてください。よろしくお願いします。

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

  • ベストアンサー
  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.3

こんばんは。とりあえず私の想像で産婦いるマクロを組んでみましたうまく動作するかどうか次のように操作してみて下さい。 ・在庫一覧を立ち上げ、ALT+F11キーを押してVBE画面を表示させ、画面右上にVBAProjectと書かれている上でダブルクリックし、表示された右側の白い部分に下記のコードをコピー&ペーストする。 Sub test() Dim myRow As Long Dim DirName As String Dim myWbn As String Dim i As Long MsgBox Workbooks("在庫一覧.xls").Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row If Workbooks("在庫一覧.xls").Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row <> 1 Then myRow = Workbooks("在庫一覧.xls").Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row Workbooks("在庫一覧.xls").Worksheets(1).Rows("2:" & myRow).Delete End If DirName = "C:\My Documents\仕訳帳\" myWbn = Dir(DirName, 16) Do While Len(myWbn) <> 0 If (myWbn <> ".") And (myWbn <> "..") Then Workbooks.Open Filename:=DirName & myWbn i = Workbooks("在庫一覧.xls").Worksheets(1).Cells(Rows.Count, 1).Offset(1, 0).low ActiveSheet.Cells(i, 1).Value = Workbooks(myWbn).Worksheets(1).Range("B2").Value ActiveSheet.Cells(i, 2).Value = Workbooks(myWbn).Worksheets(1).Range("B3").Value ActiveSheet.Cells(i, 3).Value = Workbooks(myWbn).Worksheets(1).Range("B4").Value ActiveSheet.Cells(i, 4).Value = Workbooks(myWbn).Worksheets(1).Range("B12").Value ActiveSheet.Cells(i, 5).Value = Workbooks(myWbn).Worksheets(1).Range("C12").Value ActiveSheet.Cells(i, 6).Value = Workbooks(myWbn).Worksheets(1).Range("B13").Value ActiveSheet.Cells(i, 7).Value = Workbooks(myWbn).Worksheets(1).Range("C13").Value End If myWbn = Dir() Loop End Sub ・ALT+F11キーを押してエクセルの画面にもどり、メニューバーの上で右クリックして表示されたプルダウンメニューのユーザー設定をクリックする。 ・表示されたダイアログボックスのツールバータブをクリックし、右側の新規作成ボタンをクリックして表示されたボックスを何もせずOKボタンで閉じる。 ・ダイアログ僕巣のコマンドタブをクリックし、分類と書かれている下の白いボックスから新しいメニューを選択する。 ・コマンドと書かれている下にも新しいメニュと書かれているのでそこにマウスポインターをあわせ、左ボタンを押したまま表示されているツールバーの上までドラッグしてツールバーの上でボタンを離す。 ・選択したボタンの編集と書かれているボタンをクリックして表示されたプルダウンメニューの名前と書かれている右の四角の中にマクロ実行と入れてマクロの登録と書かれている場所をクリックする。 ・表示されたダイアログボックスの中の白いボックス(広い方)にThisworkbook.testと書かれている部分にポインターをあわせてクリックするとその上の白いボックスの中に同じものが表示されるので、それを確認後OKボタンでダイアログボックスを閉じ、ユーザー設定ダイアログボックスも×ボタンを押して閉じる。 ・表示されているツールバーにマウスポインターをあわせ、浸りボタンを押したままメニュバーのところまでドラッグする。 マクロ実行ボタンをクリックするとマクロが走り出すので、動作を確認してみて下さい。

rari
質問者

お礼

ありがとうございます!! お礼が遅くなって申し訳ございません。月末、月初処理と風邪で倒れこんでしまってました。 これで少しは仕事が楽になる気がします。 ありがとうございました。

その他の回答 (2)

  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.2

こんばんは。返答が遅くなって申し訳ございません。聞き忘れたことがございますので、再度補足させて下さい。 ・単票ファイルをウインドウズの中のマイドキュメントの中に"単票"という名前のホルダーを作り、その中に単票ファイルをすべて保存することが可能かどうか教えて下さい。 ・単票ファイルのB2・B3・B4・B12・B13・C12・C13の内容を在庫一覧ファイルのA列~G列まで左から順に並べてよいかどうか教えて下さい。 ・在庫一覧ファイルをウインドウズの中のマイドキュメントの中に"在庫"というホルダーを作り、その中に在庫一覧ファイルを保存することが可能かどうか教えて下さい。 ・サンプルマクロを書くだけでいいのか・サンプルマクロの操作方法も教えなければならないのかその点について教えて下さい。 お手数をおかけいたします。よろしくお願いいたします。

rari
質問者

お礼

ありがとうございます。 ・単票をマイドキュメントにフォルダを作り、入れました。 ・B2・B3・B4・B12・C12・B13・C13の順でお願いします。 ・在庫一覧ファイルをマイドキュメントの中にフォルダを作って入れました。 ・すみません。マクロ初心者なので操作方法も教えてください。 お手数おかけして申し訳ありません。よろしくお願いいたします。

  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.1

初めまして。コピー&ペーストするだけで動作するサンプルマクロを組んでみたいと思います。次の内容を教えて下さい。 ・単票すべてのブック名 お手数をおかけいたしますが、よろしくお願いいたします。

rari
質問者

お礼

ありがとうございます。質問者のrariです。 すみません、よくわからなくて、補足のところにかいてしまいました(汗) どうぞよろしくお願いします。

rari
質問者

補足

早速ありがとうございます。 単票には、11-1-1、11-1-2、11-1-3、11-2-1、11-2-2、・・・・と遠々に日付ごとに連番でついるのですが、、、、 もしだったら、連番に全部名前を変えたりしますが、、、そうすればできますでしょうか? よろしくお願いいたします。