Excel帳票からExcel一覧を作成するマクロ

このQ&Aのポイント
  • Excel帳票から自動で一覧表を作成するマクロを作成したい。マクロ初心者で困っている。
  • Excel帳票には納品書の情報が複数枚あり、それを一覧表にまとめたい。
  • DBとして扱いたいので、マクロを使ってSQLのような書き込みができればよいが、どうすればいいかわからない。
回答を見る
  • ベストアンサー

Excel帳票からExcel一覧を作成するマクロ

一定のエクセル帳票があります。 それぞれのセルに項目があり、 納品書 A列 B列 1 納品日 2013/5/10 2 品目 カップラーメン 3 価格 128円 4 数量 1,000個 5 合計 128,000 6 賞味期限 2014/4/1 など・・・ これが1枚のExcel帳票として複数枚あるとします。 Excelを開くたびにマクロを実行し、一覧表を作成します。 納品日 品目 価格 数量 合計 賞味期限 xxxxx xxxx xxxxx xxxx xxxx xxxxxxx yyyy yyyy yyyy yyy yyyy yyyyyyy 帳票を読み込んで自動的にこの一覧Excelを作るようにしたいのですが、 どのようにしたらよいのか、マクロ初心者のため全くわからなく困っています。 この一覧をDBと見立ててSQLで書き込んでいけばよいと感じているのですが、 これもどうすればいいか、途方に暮れています。 わかる人であれば、1時間もあればできるものだと思うのですが、 なかなか手を付けられず悩んでいます。 簡単に手ほどき、サンプルなどを教えていただけると嬉しいです。 よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

>Excelを開くたびにマクロを実行し、一覧表を作成します。 それがヤリタイ事なのでしたら、次の2つをとっかかりにします。 1)Auto_Openマクロ、若しくはWorkbook_Openイベントプロシジャを使い、ブックを開いたときに自動起動させる 2)「既に収集済み」の伝票シートと「未収集シート(前回ブックを開いたのちに新たに追加した伝票シート)」を区別する方策を考える 準備: 伝票シートを束ね、さらに一枚「一覧表」シートを添えた一冊のブックを準備する 手順: ALT+F11を押す 挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける sub Auto_Open()  dim w as worksheet  for each w in worksheets   if w.name <> "一覧表" then   if w.range("A10") <> "済" then    worksheets("一覧表").range("A65536").end(xlup).offset(1).resize(1, 6).value _     = application.transpose(w.range("B1:B6").value)    w.range("A10") = "済"   end if   end if  next end sub ファイルメニューから終了してエクセルに戻る ブックを保存し、閉じて、開きなおす ●具体的な転記マクロ、あるいは「記入済み」の識別方法などについては、実際のエクセルに一番適した方策をご自分で考えてマクロにしてください。

masaruf
質問者

お礼

keithin さん、 ご返信が遅れまして、申し訳ありません。 具体的なソースの提示、ありがとうございます。 大変参考になりました。 また、SQLで書き込まなければいけないところが難しかったのですが、結局SQLを使用せず、書き込むことにしました。 ありがとうございました。 さっそくの回答、感謝しております。

その他の回答 (3)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

手ほどきということで 納品書のシートを Sheet3にすべてを貼り付けます。 Sheet1に1行目にでも 納品日 品目 価格 数量 合計 賞味期限 の項目を準備します。 以下のマクロを実行します。 Sub ボタン1_Click() GYOU = Range("A" & Rows.Count).End(xlUp).Row + 1 Range("A" & GYOU).Value = Sheets("sheet3").Range("B1").Value Range("B" & GYOU).Value = Sheets("sheet3").Range("B2").Value Range("C" & GYOU).Value = Sheets("sheet3").Range("B3").Value Range("D" & GYOU).Value = Sheets("sheet3").Range("B4").Value Range("E" & GYOU).Value = Sheets("sheet3").Range("B5").Value Range("F" & GYOU).Value = Sheets("sheet3").Range("B6").Value End Sub 何をしているのか、ご理解して頂けるでしょうか。

masaruf
質問者

お礼

hallo-2007 さん、 返信、遅れましてすみません。 親切な回答ありがとうございました。 おかげさまで、皆様のお力もあってなんとか対応できました。 ありがとうゴアいます。 また、具体的なソースの提示、ありがとうございます。初心者の私にとっては大変参考になりました。 重ねて、御礼申し上げます。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

DBやらSQLやら難しいことはわかりませんが、 肝心なところがスッポリ抜けていることだけはわかります。 > 1枚のExcel帳票として複数枚ある 同一のブックの中に「複数のシートが」あるということでしょうか。 同一のフォルダの中に「複数のブックが」あるということでしょうか。 仮に後者の場合、各ブックのシート数・シート名は同一でしょうか。 また、必要無いシートが混ざっていたりしないでしょうか。 それとも、複数のフォルダから複数のブックを読み込まなきゃならないのでしょうか。 > 一覧表を作成します どこに作ったら良いでしょう。 「帳票(?)シート」が羅列されているブックに「一覧表」シートを付加したら良いでしょうか。 それとも、新規ブックを「一覧表」として作成したら良いのでしょうか。 > Excelを開くたびにマクロを実行し エクセルをのものを立ち上げた時(新規ブックを作る時などにも)、 必ずこのマクロが動くようにしたいと言うことでしょうか。 それとも、特定のブックを読み込んだ時に限定したいのでしょうか。 などなど、組むに当たって不十分な情報だらけです。 よって一般論として、手ほどきと言うか考え方を。 エクセルには「マクロの記録」と言う機能があります。 質問文中のサンプルデータを拝見する限り、 「縦に並んでいる情報を横に並べ替える」だけのように見えます。 つまり、「マクロの記録」で ・範囲を指定 ・コピー ・行列を入れ替えて貼り付け 以上の動作を記録し、アレンジしていけばよろしいのではないか、と思われます。 それが出来たらあとは「質問文中に無い処理条件」を加味し、 マクロを仕上げていけば出来上がります。

masaruf
質問者

お礼

tsubuyuki さん、 返信が遅れまして申し訳ありません。 おかげさまで、回答いただいた皆様のソースをベースとして、自分でも勉強しながらなんとか対応できました。 マクロの記録は、認識しておりましたが、そこからの加工がよくわかららなかったことと、そして、SQLを利用しなければいけないことが条件としてあり、苦戦しました。 おかげさまで、皆様の助言を参考にして、なんとかたどり着くことができました。 ありがとうございます。

  • kamikami30
  • ベストアンサー率24% (812/3335)
回答No.1

帳票や一覧というのが、Excelの何に該当するのかわかりません。 Excel自体は、xlsやxlsxの拡張子のファイルなどを扱うアプリケーションです。 Excelを開くとは、ファイルを開くのか、シートを選択するのか、どちらにしても具体的にどのようなものなのですか? Excelを開くではなく、Excelで~を開く という認識に変えてください。 Excelファイルは データが保存されているもののことで、 ブックとも言います。 ブックの中にシートがあります。 シートの中にセルがあります。 質問の内容がそれぞれ上記の関係でどうなっているのかわかりません。 それがわからなければ、サンプルはもちろん、ヒントも出せませんので、 どのファイルのどのシートのどのセルか? わかるように、ご説明下さい。 具体的には1枚というのが、 ファイルなのかシートなのかわかりません。 1ファイルに1シートで複数枚なら複数ファイルになりますが、 1ファイルに複数シートなら、1ファイルということになります。

masaruf
質問者

お礼

kamikami30さん、 返信が遅れまして申し訳ありません。 おかげさまで、回答いただいた皆様のソースをベースとして、自分でも勉強しながらなんとか対応できました。 質問に対して迅速な回答ありがとうございます。 助かりました。 ありがとうございます。

関連するQ&A

  • テキストファイルをエクセルにコピーするマクロ

    エクセルマクロの初心者です 以下のようなテキストファイルをエクセルにコピーするマクロを作りたいです。 1、ボタンをクリックするとテキストファイルを選択する画面になる 2、テキストファイルを選択すると、その中から欲しい行のみエクセルのsheet3のA1、B1の順にコピーされる 3、テキストファイルのコピーしたい行はキーワードの間のもの 例(キーワードをAとBとする) xxx xxxx,xxxxxx xxxx,A yyyyy yyyyyyy yyyyyy,yyyy zzzzzzz zzzzzzz z zzzz,B このような形式のAとBの間にあるyyyyy yyyyyy yyyyyy,yyyyをコピーしたい xxx xxxx,xxxxxx xxxx,A yyyyy yyyyyyy yyyyyy,yyyy xxx xxxx,xxxxxx xxxx,A ttttt tttttt tttttt,tttt zzzzzzz zzzzzzz z zzzz,B このような場合も混在し、このときはtttt tttttt ttttt,ttttのみコピーする つまり xxx xxxx,xxxxxx xxxx,A yyyyy yyyyyyy yyyyyy,yyyy zzzzzzz zzzzzzz z zzzz,B xxx xxxx,xxxxxx xxxx,A yyyyy yyyyyyy yyyyyy,yyyy xxx xxxx,xxxxxx xxxx,A ttttt tttttt tttttt,tttt zzzzzzz zzzzzzz z zzzz,B このようなテキストに対して実行すると、Sheet3に yyyyy yyyyyyy yyyyyy,yyyy ttttt tttttt tttttt,tttt となるようにしたい 詳しい方、知恵を貸してください よろしくお願いします。

  • エクセルマクロについて

    お世話になります。 エクセルのマクロについて不慣れなためご質問させてください。 下のような表がありこれを集計して新しく表にしなおしたいと思っています。 1列目 2列目 A    XXXX B    XXXX C    XXXX A    XXXX A    XXXX B    XXXX 1列目の同じ文字列を数えて表を作りなおしたいのです。 1列目  2列目 A     3   ←数えた回数を入れたいと思います B     2 C     1 初めの表はマクロで作成出来たのですが2つめの表を作成する エクセルマクロを作成したいと思っています。 サンプルを頂けると助かります。

  • Excelマクロでフォルダ一覧作成

    ExcelマクロでExcelファイルのA列に30行程、入力されている一覧の文字でフォルダを指定したフォルダ内に作成するソースを考えています。色々、試してはいますがどれもうまくいきません。教えていただけると助かります。

  • エクセルマクロについて

    売上記録表で、品目(A列)、販売日時(B列)、数量(C列)、----と並んでいます。A列の品目は、桃・桃・桃・桃・メロン・メロン・柿・柿・柿・ーーーと 、同じ品目について1行~複数行並んで記入されています。この複数行の内、先頭行を残して、他の行を削除するマクロを教えてください。別のワークシートに作成でもよいです。よろしくお願いします。

  • ExcelでSheet1/2を作成・・・

    S1に請求書、S2に顧客情報を 初めて質問を投稿いたします。 ExcelでSheet1・Sheet2があります。 Sheet2には顧客情報があります。  A列   B列   C列    D列 会社名 郵便番号  住所  電話番号  a xxx-xxxx a1xxxxx xxx-xxxx b xxx-xxxx b1xxxxx xxx-xxxx c xxx-xxxx c1xxxxx xxx-xxxx c xxx-xxxx c2xxxxx xxx-xxxx c xxx-xxxx c3xxxxx xxx-xxxx とあるとします。 そこで請求書をSheet1を作成してあり、会社名をリストで選択するようにしてあります。会社名を選択するとSheet1上にある、住所が自動的に入力されるようにしてあります。 質問は、会社Cには複数住所があります。そこで、会社Cを選んだときだけ、住所欄にプルダウンで住所を選べるようにしたいのですが、可能でしょうか?

  • VS2005で帳票作成するには?

    VS2005の練習で簡単な会計ソフトを作っています。 機能がたくさんあってわかっていない部分が多く、初歩的な質問で恐縮ですがよろしくお願いします。 印刷する帳票の作り方(デザイン)についてお聞きしたいので投稿しました。 1.普通に罫線のある一覧表(5列、30行くらい)にデータを表示して印刷しようと思ったら、ツールのDataGridViewをユーザーフォームに配置して作るのですか? 2.エクセルで過去に作った帳票がいい感じなので、利用したいのですが、帳票だけエクセルで、中のデータはこちらで指定するというような印刷の仕方(プログラムの仕方)はありますか? 3.市販されているような帳票(領収書や請求書)を作りたい時、VS2005の便利そうなツールがあったら教えてください。 4.おすすめがあれば教えてください。 可能かそうでないか、また、ヒントをいただけたらコードなどは自分で勉強して探しますのでよろしくお願いします。

  • 帳票を作るツールについて

    業務で使うソフトをプログラミングする際に、帳票(データ一覧、集計結果、帳簿など)も作る必要が多々あるのですが、 みなさんは帳票を作るツールとしてどのようなものをお使いなのでしょうか? 経験談を参考にさせてください。 私は、現在は以下のような環境で作っています。 VS.NET(C#) MS-Excel(帳票作成) MS-SQLServer 今のところ、Excelで帳票を作成すると、 ・罫線を引くマクロ ・データを取り込むマクロ(半自動) などを作らねばならず、工数がかかることと、 ヴァージョンによってマクロ内部を書き分けなければならないこと、 それに伴うテスト工数が増えることなどを問題としています。 Webアプリにしてしまい、ブラウザでの表示なども考えたのですが、 なかなか実力が追いついてくれません。 みなさんは、どのように帳票を作成されていますか?

  • Excelマクロ作成について教えて下さい

    Excelマクロ初心者のMJです。 Excel2007で、A列に製品名、B列から年月(YYYYMM)毎に2年分の販売数量が入力された表があり、この表の1行目の特定年月を指定して、その年月から12カ月分の全製品データを別シートにコピーをする方法を教えて下さい。 宜しくお願い致します。

  • access 帳票形式での Sum関数について

    お世話になります、 access2003を使っています、 テーブル商品があり、以下3つの列があります 商品名 単価 数量 フォーム集計をテーブル商品を元に帳票形式で作りました 帳票の1行にテキストボックス”金額”を追加してそのコントロールソースの値を [単価]*[数量]にしました。 帳票の1行づつは 商品名 、単価、 数量、金額([単価]*[数量]) の4つの列が並びます。 上記までは一行づつ計算して金額の値は正確に表示されます。 このフォームのフッターに帳票の各業の金額の合計を求めるため テキストボックス”合計金額”をつくり コントロールソースを =Sum([金額]) にしたのですが、明らかに合計金額が違った数値が出てきます。 出てきた金額が何をどう計算して出てきたのか見当が付きません どのようにしたら正確な合計金額が得られるのでしょうか? 何方かお教えいただけますようお願い致します、

  • Excelマクロの組み方を教えてください。

    マクロ初心者です。 見積のフォーマットを作成しているのですが、 どなたかマクロの組み方をご教授いただければありがたいです。 見積のフォーマットは下記のようになっております。 A   B   C   D  E   F 番号 製品名 数量 単価 合計 製品カテゴリ 製品カテゴリは、例えば食料品、衣料品といったものを選択してもらうように、 入力規則でリストから選んでもらうようになっています。 製品カテゴリごとでいくらの合計金額になるのかを集計したいので、 C列に数量が入っている場合は必ず製品カテゴリを選択して欲しいのです。 印刷マクロはもう既に組んであり、そのマクロボタンを押したときに、 C列に数量が入っていて、同じ行の製品カテゴリの欄が未入力の場合に、 そのマクロが実行されない(エラーメッセージが出る)マクロを組みたいと考えております。 ※ちゃんと製品カテゴリが入っていれば、そのままメッセージなども出ずに印刷されるようにしたいです。 お忙しいところすみませんが、どなたかお力をお貸しいただければと思います。 宜しくお願い致します。

専門家に質問してみよう