• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel帳票からExcel一覧を作成するマクロ)

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答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さん、 返信が遅れまして申し訳ありません。 おかげさまで、回答いただいた皆様のソースをベースとして、自分でも勉強しながらなんとか対応できました。 質問に対して迅速な回答ありがとうございます。 助かりました。 ありがとうございます。