• ベストアンサー

VB.NETでエクセル操作

度々失礼します。 VBよりエクセルを開けて A列の数字の合計とB列の数字の合計との差を Label1に表示するようなソースで悩んでます。 教えて下さい。よろしくお願い致します。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

Dim excel As Object excel = GetObject("D:\sample\test.xls") dim sumA as integer = excel.Application.WorksheetFunction.Sum(excel.Sheets("Sheet1").Range("A:A")) dim sumB as integer = excel.Application.WorksheetFunction.Sum(excel.Sheets("Sheet1").Range("B:B")) みたいな感じで、A列とB列の合計が求められます

taiyo99
質問者

お礼

BLUEPIXY 様 早速のご回答でありがとうございます。 返事が遅くなりまして、申し訳ございませんでした。 質問させて頂きました悩みは解決しました。 ちなみにエクセルを開いた後、オートフィルタの検索値を合計するにはどうすればよいのでしょうか? Subtotalは使用できませんよね? よろしくお願い致します。

taiyo99
質問者

補足

今現在のソースです。 Dim app As Object Dim book As Object Dim sheet As Object Dim Selection As Object app = CreateObject("Excel.Application") app.application.visible = True book = app.Workbooks.Open("C:\xxx.xls") sheet = book.Worksheets(1) With sheet.Range("A1") If .AutoFilter Then .AutoFilter(field:=1, Criteria1:=TextBox1.Text) End With Dim sumA As Integer = app.WorksheetFunction.sum(sheet.Range("C:C")) Dim sumB As Integer = app.WorksheetFunction.sum(sheet.Range("D:D")) Label1.Text = sumA + sumB

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>Subtotalは使用できませんよね? 使えますよ

taiyo99
質問者

お礼

BLUEPIXY 様 解決しました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBからExcelのデータを参照するには?

    VBからExcelのデータを参照するには? ExcelのA列を、参照しようとしています。 このA列には数字も混じっています。 例えば A123 abc 456 qwer のように、4行あったとします。 VBのソースコードは、次の通り --------------------- Dim elSequence(10) As String i = 0 Do Until objSheet.Range("a2").Offset(i,0).Value = "" elSequence(i) = objSheet.Range("a2").Offset(i,0).Value i += 1 Loop --------------------- 問題は、Excelのセルに「数字だけの場合(上記の例で4行目)」で、VBはこれを、文字列として扱わずにDouble型と認識してしまいます。 例え、Excelのセルを、プロパティの文字列指定としても「456」はDouble型になってしまいます。 Excelから受け取ったデータを、文字列への変換はどのようにしたら良いですか。 参考になりそうなWeb等でも構いませんので、教えていただけませんか。

  • エクセル イレギュラーなSUM関数

    会社で使うエクセル表を作っていますが困っています。 A列B列があり A5にはA1~A4の合計のSUM関数が入っています。 B5にもSUM関数を入れたいのですが B1~B4はイレギュラーな事があった場合のみ数字を入力し B5にはB1~B4に入力された数字の合計と B列に何も入力されていない隣のA列の合計を表示させたいのです。 例えるなら A1~A4に3を入力 A5はSUM関数がはいっているので12が表示されているとして B列はB1~B3は未入力 B4に7が入力された場合 B5にはA1~A3とB4の合計の16が表示されるようにしたいのです。 B4に7を入力したので隣のA4の3は合計しないという事です。 どうぞ宜しくお願い致します。

  • エクセルの関数についての質問です

    エクセル2010で A1のセルに「○」が入力されると +3 A2・A3・A4 のセルはどこか一箇所にでも○が入れば、1を足します。 二箇所、三箇所に入っても 1しか足しません。 その合計数をBの列に表示させるようにしたいのです。 Bの1~4のセルは結合されています。 すべてに○が入った場合は、B列の数字は 3+1=4 A1にしか○が入らなかった場合のB列の数字は3になります。 3+0=3   A   B   1 ○ 2 ○ 3     4 4 ○   ○が入れば、3を足す  一箇所にでも入れば1を足す それぞれ別の関数は出来たのですが ふたつの条件の合計を出す式が出来ません。 非表示の列を作って、そこにまずは別々に数字を出して それを合計させる手もあると思うのですが 列を増やしたりせずに、関数だけで、B列に数字が入るようにしたいのです。 うまく伝わりますでしょうか どうぞよろしくお願いします。

  • エクセルでセルをクリックしてプルダウンのようなもの

    エクセルで、合計数字を表示するセルをクリックしてプルダウンのようなものを出せて、そこに数字を入力し、その合計をセルに返すことはできるのでしょうか? ........A...............B..... 1...商品......販売数 2.....あ............140 3.....い..........1000 4.....う.............300 上の様に見える表を完成させたいのですが、例えばB列の商品"あ"の販売数を、 B2をクリックするかなにかして、プルダウンで 3/15 A社 50 2/06 B社 10 4/10 C社 80 と入力し、その合計数をB2に表示させたいのです このような事はエクセルでできますでしょうか? 入力する”3/15 A社 50”ののような項目は1品目で最大30項目くらいになりますので、 あくまで行数や列数を増やしたりしたくないもので、入力サブシート?的なものに入力し、 合計数を目的のセルへ表示したいのです VBなどあまりいじった事ないのですが、お分かりの方がおられましたらご教授願えませんでしょうか どうぞ宜しくお願い致します

  • EXCELで

    EXCELで A列に4文字の任意の数字を B列に3文字の任意の数字を入れていきます。 *A列とB列は同じ行だけ数字を入れます。 A列の数字と且つB列の数字 異なる行で 同じ数字が入るときエラーメッセージか何かわかるように表示させるにはどうすればよいでしょうか? A        B 1234      123 5678      321 4956      695 1234      123 →1行目と同じ!! 以上、宜しくお願い申し上げます。          

  • エクセルVB 桁数を合わせる

    VB初心者です。 エクセルでマクロを作りたいのですが、下記内容で困っています。 A列に示したドットで区切った数値をB列のようにすべて3桁表記にしたいのですが、 わかりません。誰か教えてください。 A B 1 123.456.33.421 → 123.456.033.421  2 243.555.235.21 → 243.555.235.021 3 221.123.24.53 → 221.123.024.053

  • エクセルで時間セルをVBで文字列として取り込むには

    エクセルです。 時間セルがあって、エクセル上での表示では 12:30:15 という風に表示するようにセルの書式設定でしているのですが、そのセルを VBで取り出そうとして、 A = Cells( 1,1 ) とかってすると、Aには、0.66656 とかって数字が入ってきてしまいます。 Aは文字列として、DIM A as String とかってしているのですけどね これをちゃんとAに、12:30:15 という形の文字列として入れるのにはどうしたらいいのでしょか

  • VBのエクセル操作について

    VB6.0で下記のようなロジックでエクセル操作をしていますが、 エクセル出力時に全て文字列扱いされるため計算処理でエラーとなって困っています。 数字は数値型で出力したいのですが、良い方法はありますでしょうか。 dim csvline() as string . . . csvline = Split("AAA,BBB,0,1,3,4", ",") . . . XlsSheet.Range(Cells(0, 1),Cells(0, 6) = csvline

  • Excelの組み合わせをカウントしたいです。

    こんにちは。 Excelの組み合わせをカウントしようと試行錯誤したのですが 未だに完成出来ないので質問させて頂きます。 A列に1から10までの数字がランダムで500行ほどあり、 A列の中で1と言う数字があった場合、 その下のセルに2があればその組み合わせを1とカウントし、 B列に合計を表示したいのですが、これは可能でしょうか? どうかご教授下さいますよう、宜しくお願い致します。

  • エクセルの操作につきまして

    マイナスの数字を、プラスに。 プラスの数字を、マイナスに。 変換することは可能でしょうか。 具体的には・・ 画像を貼りましたが、 A列の数字を C列のように なるようにしたいのです。 このようなことってエクセルでは可能なことなのでしょうか。 そして、もし可能な場合 具体的なやり方を教えて頂けませんでしょうか。 (エクセル全く詳しくないので、細かいところまでご指示頂けましたら幸いです。) どうぞ宜しくお願い致します。

このQ&Aのポイント
  • MFC-J6983CDWを使用してPDFをスキャンする際、ADFで複数枚スキャンするとバラバラのファイルになってしまいます。そこで、1つのファイルにまとめる方法を教えてください。
  • 以前のタイプ(6490?)では、特別な操作なしに1つのファイルに保存することができましたが、MFC-J6983CDWではその方法がわかりません。
  • ブラザー製品、特にMFC-J6983CDWを使用してPDFを複数枚スキャンする際には、バラバラのファイルに保存されてしまう問題があります。解決方法として、どのようにして1つのファイルにまとめられるか、教えていただけますか?
回答を見る