質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

2回答

1085閲覧

VBでエクセルに合計値を書き込みたい

退会済みユーザー

退会済みユーザー

総合スコア0

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2017/03/31 00:30

編集2017/03/31 01:39

こんにちは。プログラミング歴数週間の初心者です。
Visual Studio 2015で開発しています。

以下のように、SQLで持ってきたデータテーブルを行のデータがなくなるまで繰り返す形で、
エクセルに表として出力したあと、
最終行にa,b,c,d(金額のデータが入っています)それぞれの合計値を書きたいのですが、どのような処理をすればA,B,C,Dの値を任意のセルに書き込めるのかわかりません。
御教授願いますm(_ _)m

イメージ
|列1|列2|列3||列4|列5|列6||a|b|c||d|
|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|あ|い|う|え|お|か|a|b|c|d|
|あ|い|う|え|お|か|a|b|c|d|
| | | | | | |A|B|C|D|

: ↑合計

Dim Row As Integer = 0 Dim A As Integer = 0 'A合計 Dim B As Integer = 0 'B合計 Dim C As Integer = 0 'C合計 Dim D As Integer = 0 'D合計 xls.BookOpen(Bag.ExcelBookPath & "Excel.xlsx") xls.NewArray(r.Rows.Count, 10) = "明細" For Each dr As DataRow In r.Rows xls.RangeField("明細", Row, 0) = dr("列1") xls.RangeField("明細", Row, 1) = dr("列2") xls.RangeField("明細", Row, 2) = dr("列3") xls.RangeField("明細", Row, 3) = dr("列4") xls.RangeField("明細", Row, 4) = dr("列5") xls.RangeField("明細", Row, 5) = dr("列6") xls.RangeField("明細", Row, 6) = dr("a") xls.RangeField("明細", Row, 7) = dr("b") xls.RangeField("明細", Row, 8) = dr("c") xls.RangeField("明細", Row, 9) = dr("d") A += dr("a") '足していく処理 B += dr("b") C += dr("c") D += dr("d") Row += 1 xls.RangeField("明細", ?, 6) = A xls.RangeField("明細", ?, 7) = B xls.RangeField("明細", ?, 8) = C xls.RangeField("明細", ?, 9) = D Next xls.RangeFieldGo("明細", "A2")

Row+1のあとに挿入したコードの?に0を入れると、エクセルの2行目(1行目には項目名が書いてあります)に合計値が入ったので、?の部分を工夫すれば解決するのかと考えましたがよくわかりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2017/03/31 01:44

Excelを操作するためのオブジェクト(xls)は何でできているのですか?RangeFieldなどのメソッドを調べても出てこないので。独自のクラスでしょうか?
akabee

2017/03/31 01:48

「xls」は何という型なのか分かりますか?(この質問の意味は分かりますか?)私が不勉強なのかもしれませんが、BookOpen、NewArray、RangeFieldなど見慣れないメソッドが使われています。これは邪推ですが、どなたかの作られたクラスを利用されているのではないでしょうか?そのクラスの仕様が分からないので、回答ができない状況にあります。
退会済みユーザー

退会済みユーザー

2017/03/31 01:57

たしかにほかの方に作っていただいたクラスを利用しています。問い合わせます。ありがとうございます。
guest

回答2

0

RangeFieldGo の検索結果が 0 件だったので仕様がよくわかりませんが、0 で二行目になるなら、r.Rows.Count を入れるとその場所に行きそうな気がします。試してみてください。

投稿2017/03/31 01:58

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

自己解決しました。ありがとうございました。

投稿2017/03/31 01:57

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2017/03/31 02:04

作った人に問い合わせできるなら最初からそちらに聞いてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問