![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
老婆心ながら。
「SQL Serverにあるデータを集計処理してExcelブックに書きこむ」という処理を、
For や While という反復処理のキーワードが魔法のようにやるというわけではありません。
次のような流れですね。
SQL Server … (A) RDBだからSQLで操作。テーブル、レコードとかフィールドとか。
| … (B) ADO.NET、ADO、ODBC など
VB.NET … (C) アルゴリズム
| … (D) OLE(COM)、ブックではなくCSVならファイルの読み書き
Excel ブック … (E) Excel、CSV?
画像では (E) の最終形しか示されてませんが、まず (A) のテーブル構造がわからないと、(C) のロジック(あなたがいう For とか While の部分)の指針を示しようがないですね。また、具体的なコードを示そうとしても、(B)がどういった方式かわからないので、コードの示しようがないです。また、(E) はブックといってますが、(D) の方式がわからないし、(E) はほんとうにブックでしょうか?CSVのテキストファイルではないですか?
さて。
(A) が一般的な正規化をされていて、(B)がADO.NET、(D) がOLE、(E) がブックだとすると、
(A) は 売上ID、店舗名、商品名、売上高 だとすれば、
(C) では、店舗名、商品名、売上高を順に並べ替えて DataSetを取得しましょう。このとき、店舗名、商品名をキーにして、売上高で合計してあればよいですが、SQLは割愛します。
並べ替えられ、集計されたDataSetが取得できたならば、あとはブックに順にはめていくだけです。
VB.NET で OLE で Excel を新しくひらくときは、以下。
Dim xlBooks As Excel.Workbooks = xlApp.Workbooks
Dim xlBook As Excel.Workbook = xlBooks.Add
Dim xlSheets As Excel.Sheets = xlBook.Worksheets
そうすると、xlSheets 変数に、ワークシートの参照ができるから、Range や Cells プロパティで座標を指定してはめていけばよいでしょう。
DataSetが複数行に対して、Excel一列になりますから、For は列を中心にするとわかりやすいかな。列を固定して、DataSetが、同一店舗で、商品名が前のレコードと違えば、セルの行を次へ。店舗、商品名の両方がちがえば、For は つぎのループをまわしてください。
お悩みなのは、典型的なキーブレイクの処理です。
まず、方式を明らかにしましょう。これが明らかになったなら、どこにどういう値が入らなければならないかという現象(I/O)を理解したうえ、順次、判断、繰り返しを用いたフローチャートを書くこと。一生懸命考えてください。
キーワードがなにかすべてをやってくれるわけではないですよ。
がんばってください。
この回答へのお礼
お礼日時:2011/02/02 08:13
分かりづらい質問の中で回答をして下さってありがとうございます。
方式などは書いて下さった通りです。また方式等をしっかりと理解し、考えていこうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- 中途・キャリア 私に向いている職業は何だと思いますか?アドバイスください。 4 2023/02/25 14:33
- 営業・販売・サービス 店舗の店番を無給で他者に行わせる事は違法行為になりますか? 5 2022/06/11 18:27
- 飲食店・レストラン ウーバーイーツの店舗売上データはどこで確認できますか? 会社が運営する飲食店がウーバーを始めたのです 1 2023/07/08 22:24
- Amazon Amazonさん 価格の違い...について 4 2022/07/01 21:12
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- スーパー・コンビニ コンビニ決済の用紙で支払いの際に「店舗控え」の部分が有りますが、雇用店員が「不要」だと言う根拠が分か 5 2022/04/04 08:27
- いじめ・人間関係 この度、復職するのですが…。 4 2022/10/24 02:09
- Bluetooth・テザリング 楽天モバイルをご利用されている方へ 3 2023/04/28 16:06
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAが途中で止まります
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
vbaで他のブックに転記したい。...
-
ワイルドカード「*」を使うとう...
-
ACCESSVBA からExcelの他ブック...
-
【ExcelVBA】インデックスが有...
-
vbaでvbaProjectのパスワード解...
-
VBAで別のブックにシートをコピ...
-
Excelのマクロについて教えてく...
-
【マクロ】違うフォルダにある...
-
VBA コードを実行すると画面が...
-
VBS Bookを閉じるコード
-
[Excel]ADODBでNull変換されて...
-
pythonでクラスで複数のメソッ...
-
エクセルマクロで、他ブックか...
-
VBA 実行時エラー 2147024893
-
ExcelVBA:すでに開かれている...
-
【VBA】全シートの計算式を全て...
-
VBの処理結果をEXCELシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
(マクロ)データをAブックからB...
-
VBS Bookを閉じるコード
-
VBA 別ブックからコピペしたい...
-
VBA 複数のエクセルから一つの...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】インデックスが有...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA コードを実行すると画面が...
-
【VBA】全シートの計算式を全て...
-
複数のエクセルブックをひとつ...
-
VBA 実行時エラー 2147024893
-
ExcelのVBAです。フォルダ内の...
おすすめ情報