一定のエクセル帳票があります。
それぞれのセルに項目があり、
納品書
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時間もあればできるものだと思うのですが、
なかなか手を付けられず悩んでいます。
簡単に手ほどき、サンプルなどを教えていただけると嬉しいです。
よろしくお願いします。
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
ファイルメニューから終了してエクセルに戻る
ブックを保存し、閉じて、開きなおす
●具体的な転記マクロ、あるいは「記入済み」の識別方法などについては、実際のエクセルに一番適した方策をご自分で考えてマクロにしてください。
keithin さん、
ご返信が遅れまして、申し訳ありません。
具体的なソースの提示、ありがとうございます。
大変参考になりました。
また、SQLで書き込まなければいけないところが難しかったのですが、結局SQLを使用せず、書き込むことにしました。
ありがとうございました。
さっそくの回答、感謝しております。
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
何をしているのか、ご理解して頂けるでしょうか。
hallo-2007 さん、
返信、遅れましてすみません。
親切な回答ありがとうございました。
おかげさまで、皆様のお力もあってなんとか対応できました。
ありがとうゴアいます。
また、具体的なソースの提示、ありがとうございます。初心者の私にとっては大変参考になりました。
重ねて、御礼申し上げます。
No.2
- 回答日時:
DBやらSQLやら難しいことはわかりませんが、
肝心なところがスッポリ抜けていることだけはわかります。
> 1枚のExcel帳票として複数枚ある
同一のブックの中に「複数のシートが」あるということでしょうか。
同一のフォルダの中に「複数のブックが」あるということでしょうか。
仮に後者の場合、各ブックのシート数・シート名は同一でしょうか。
また、必要無いシートが混ざっていたりしないでしょうか。
それとも、複数のフォルダから複数のブックを読み込まなきゃならないのでしょうか。
> 一覧表を作成します
どこに作ったら良いでしょう。
「帳票(?)シート」が羅列されているブックに「一覧表」シートを付加したら良いでしょうか。
それとも、新規ブックを「一覧表」として作成したら良いのでしょうか。
> Excelを開くたびにマクロを実行し
エクセルをのものを立ち上げた時(新規ブックを作る時などにも)、
必ずこのマクロが動くようにしたいと言うことでしょうか。
それとも、特定のブックを読み込んだ時に限定したいのでしょうか。
などなど、組むに当たって不十分な情報だらけです。
よって一般論として、手ほどきと言うか考え方を。
エクセルには「マクロの記録」と言う機能があります。
質問文中のサンプルデータを拝見する限り、
「縦に並んでいる情報を横に並べ替える」だけのように見えます。
つまり、「マクロの記録」で
・範囲を指定
・コピー
・行列を入れ替えて貼り付け
以上の動作を記録し、アレンジしていけばよろしいのではないか、と思われます。
それが出来たらあとは「質問文中に無い処理条件」を加味し、
マクロを仕上げていけば出来上がります。
tsubuyuki さん、
返信が遅れまして申し訳ありません。
おかげさまで、回答いただいた皆様のソースをベースとして、自分でも勉強しながらなんとか対応できました。
マクロの記録は、認識しておりましたが、そこからの加工がよくわかららなかったことと、そして、SQLを利用しなければいけないことが条件としてあり、苦戦しました。
おかげさまで、皆様の助言を参考にして、なんとかたどり着くことができました。
ありがとうございます。
No.1
- 回答日時:
帳票や一覧というのが、Excelの何に該当するのかわかりません。
Excel自体は、xlsやxlsxの拡張子のファイルなどを扱うアプリケーションです。
Excelを開くとは、ファイルを開くのか、シートを選択するのか、どちらにしても具体的にどのようなものなのですか?
Excelを開くではなく、Excelで~を開く
という認識に変えてください。
Excelファイルは
データが保存されているもののことで、
ブックとも言います。
ブックの中にシートがあります。
シートの中にセルがあります。
質問の内容がそれぞれ上記の関係でどうなっているのかわかりません。
それがわからなければ、サンプルはもちろん、ヒントも出せませんので、
どのファイルのどのシートのどのセルか?
わかるように、ご説明下さい。
具体的には1枚というのが、
ファイルなのかシートなのかわかりません。
1ファイルに1シートで複数枚なら複数ファイルになりますが、
1ファイルに複数シートなら、1ファイルということになります。
kamikami30さん、
返信が遅れまして申し訳ありません。
おかげさまで、回答いただいた皆様のソースをベースとして、自分でも勉強しながらなんとか対応できました。
質問に対して迅速な回答ありがとうございます。
助かりました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Excel(エクセル) Excelについて教えてください。 帳票データがあります。 アクセスに取り込むため、 データ形式にし 1 2022/06/08 19:59
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- その他(Microsoft Office) wordの差し込み印刷での日付表示 2 2023/08/15 16:51
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Visual Basic(VBA) vbaで条件付き書式を設定したときの適用範囲について 1 2023/07/17 23:14
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) Excelの帳票形式をアクセスに取り込むため、 csvのデータ形式になるように、マクロを作成している 2 2022/06/12 22:52
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) エクセルで納品書(入伝票)を作成 7 2022/04/14 10:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
WorkBooksをオープンさせずにシ...
-
フォルダ内の複数ファイルから...
-
VBAでブックを非表示で開いて処...
-
Excel(2010)のフィルターが保...
-
エクセルで50行ごとに区切った...
-
Excelでブックの共有を掛けると...
-
エクセルを共有するとPCによっ...
-
エクセルで別ブックをバックグ...
-
エクセルでウィンドウの枠固定...
-
エクセルで開いていないbookの...
-
フォルダ内の複数ブックを同シ...
-
エクセルファイルを開かずにpdf...
-
複数ファイルから特定シートの...
-
エクセルの関数について教えて...
-
エクセルで参照しているデータ...
-
vbaでpdfを開いて1ページ目のみ...
-
フォルダ内の複数ファイルから...
-
【VBA】特定シート 名前編集・...
-
Excelで複数ブックの同一セルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
エクセルで参照しているデータ...
-
Excel(2010)のフィルターが保...
-
Excelで複数ブックの同一セルに...
-
VBA バックグラウンドで別ブッ...
-
エクセルで50行ごとに区切った...
-
エクセルで「ディスクがいっぱ...
-
エクセルにおける,「ブック」...
-
エクセルファイルを開かずにpdf...
-
フォルダ内の複数ファイルから...
-
ブックのピボットを別ブックに...
-
エクセルシートの一部を送りたい
-
エクセル2016です。「ブッ...
-
エクセルで別ブックをバックグ...
-
フォルダ内の複数ファイルから...
-
複数ファイルから特定シートの...
おすすめ情報