• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:● Excel VBAでの計算処理)

Excel VBAでの計算処理

このQ&Aのポイント
  • Excel VBAで特定のキーワードを検索し、数値データに-1を掛けて負の数にする方法を教えてください。
  • Excel VBAで抽出した結果を別のブックに保存する方法を教えてください。
  • Excel VBAで行数が特定できないデータを扱う方法を教えてください。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

#1です >ファイルのパスを指定しても結果はうまくいかなかったのです。 フルパスは必要ありません あるブックと別ブックは開いてから実行してください 質問に無い処理は作成していません あるブック、別ブック、例えばなど 伏せられてるものが多いので こちらでは、これ以上どうしようもありませんよ 以上

saitama_HI
質問者

お礼

hige_082様、質問を出したあと、思い至ってブックをオープンするコードを追加したところ、うまくいきました。ありがとうございました。

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

その他の回答 (2)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

正統的な回答があったので、安心して興味本位のコードを投稿します。研究なさりたいそうなので... '対象データが1番目のシート、2番目のシートの1行目にマスクデータ '転写先がBook2.xls(開いている)の指定のシート 'マスクデータは、-1を掛けたい列のみ-1を入れ、他の列は空白にしておく A列  B列  C列  ・・・・・ AA列 ・・・・ CC列                   -1       -1 Sub test() Dim c As Range, maskRow As Range, destRange As Range Dim firstAddress As String Application.ScreenUpdating = False Set maskRow = ThisWorkbook.Worksheets(2).Rows(1) Set destRange = Workbooks("Book2.xls").Worksheets("計算結果").Range("A1") With ThisWorkbook.Worksheets(1).Range("$A:$A") Set c = .Find("数量", LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then firstAddress = c.Address Do c.EntireRow.Copy destRange maskRow.Copy destRange.PasteSpecial Paste:=xlValue, Operation:=xlMultiply, SkipBlanks:=True, Transpose:=False Set destRange = destRange.Offset(1, 0) Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With Application.DataEntryMode = False Application.ScreenUpdating = True End Sub

全文を見る
すると、全ての回答が全文表示されます。
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

Sub Macro1() Dim i, j Dim コピー元 As Worksheet Dim コピー先 As Worksheet Dim 検索値 As String 検索値 = "数量" Set コピー元 = Workbooks("あるブック").Worksheets("sheet1") Set コピー先 = Workbooks("別のブック").Worksheets("計算結果") For i = 1 To コピー元.Cells(Rows.Count, 1).End(xlUp).Row If コピー元.Cells(i, 1).Value = 検索値 Then For j = 27 To 81 コピー元.Cells(i, j).Value = コピー元.Cells(i, 1).Value * -1 Next j コピー元.Rows(i).Copy コピー先.Cells(Rows.Count, 1).End(xlUp).Offset(1) End If Next i Set コピー元 = Nothing Set コピー先 = Nothing End Sub 参考まで

saitama_HI
質問者

お礼

hige_082様、さっそく回答をしてくださりありがとうございます。 実行してみたところ、Set コピー元 = Workbooks("あるブック").Worksheets("sheet1")のところで実行時エラー’9’、インデックスが有効範囲にないとメッセージが表示されてしまいました。 ”あるブック”は適合に名前を変更してファイルを実在させ、”別のブック”についても同様です。エラーメッセージはファイルが実在しないということを云っているのだと思いますが、ファイルのパスを指定しても結果はうまくいかなかったのです。 どういう対処をすればいいでしょうか。たびたびお聞きして申し訳ありません。どうか、お教えいただけませんか。

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

関連するQ&A

  • エクセル2003のVBAを教えて

    エクセル2003のVBAを教えてください。 次の対象データで、(1)(2)(3)の作業が出来るエクセルVBAを教えて下さい。 (1)(2)(3)個々のVBAでお願いします。 ●対象データ:種類(A列)、文字(B列)、    データの行数:不特定なので、データのある最終行までとします。 ●教えていただきたい項目  (1):種類だけを(C列)に取り出す。  (2):種類の先頭に空白の行を3行入れて、追加の2行目の種類(A列)に文字(B列)を入れる。  (3):種類が5行以上あるときは、5行ごとに空白行を追加する。 ●対象データ 種類(A列)   文字(B列) AA       あああ BB       いいい BB       いい BB       いいい CC       うう CC       うう DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ ●(1)のVBAの結果(このようになるVBAを教えてください。) (C列) AA BB CC DD ●(2)、(3)のVBAの結果(このようになるVBAを教えてください。) 種類(A列)    文字(B列) あああ AA        あああ いいい BB        いいい BB        いいい BB        いいい うう CC        うう CC        うう ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ

  • シート1とシート2のデータ一致 抽出方法

    エクセルのデータ抽出でお知恵をお貸し下さい。 シート1 A列  B列     C列 品名  製品番号  数量 AA    1AAAA    200 BB    1BBBB    250 CC    1CCCC    300 シート2 A列   B列     C列 品名  製品番号   数量 AA    1AAAA   200 BB    1BBBB   250 AB    AAAA    500 CC    1CCCC   300 上記のようなシートがあります。 内容は同じなのですが、シート2にはシート1にはない品名、製品番号、数量が含まれます。 シート1の品名、製品番号、数量がすべて一致するものをシート3へ抽出し、 一致しなかったデータ(シート1にはなく、シート2にあるものを含め)をシート4へ抽出したいのですが 何か良い方法はないでしょうか??

  • 複数のExcelブックから特定シートのセル範囲抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル範囲を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 このサイトで殆どよく似た回答を読んだのですがうまくいきません。VBA初心者です。 よろしくお願いします。 【前提】 ・実行する端末のOSはWindows 10 ExcelはOffice365 ProPlus ・対象フォルダはネットワーク接続フォルダ  この中に、複数のExcelブック(xlsx、xlsm)があります。 ・抽出したい対象は、各ブック内の「台帳」シートの「A3:Cの最終行」で  複数のブックの中には「台帳」シートが含まれていないブックも混在しています。 【抽出一覧作成イメージ】 ・「集約.xlsm」ブックの「集計」シートの2行目から抽出した結果を一覧表示する。 ・「集約.xlsm」ブックにマクロは登録する ・表示はA列に抽出元ブック名(=ファイル名)、B列からD列に抽出元「A3:Cの最終行」セルの値。 ・「A3:Cの最終行」セルの値を「集約.xlsm」ブックの「集計」に貼り付ける際には「値で貼り付ける」が望ましい。

  • エクセルのVBAマクロで検索と結果表示(抽出)

    エクセルのVBAマクロで検索と結果表示(抽出)を行いたいです。 業務で使用している膨大なリストデータから、特定のキーワードで情報の絞り込みを行いたいのですが、上手くマクロが組めません。 機能としては、シート1で特定のキーワード(テキストボックスに)を入力し検索ボタンを押下すると、 シート2のリストデータから検索に引っかかったセルの"行"を、シート1にリストアップ(貼り付け)していくようなマクロを作りたいのです。 シート2にはB列~AH列xn行のリストデータがあり、シート2のK列のセル内から「シート1のテキストボックスで入力したキーワードを含む」検索を行い、 HITした行をシート1のA9の行から結果として表示を行いたいんです。 簡単に言えばオートフィルタ機能の部分一致版を作りたいのですが・・・。 (オートフィルタでは完全一致でしか抽出が出来ないので) そして、検索ボタンを押下すると前回結果はクリアしたいです。 ネット上のサンプル等も参考にしながらやってみたのですが上手く行きません。。。 どなたか上記のマクロ文をご教授願えないでしょうか。 必要な情報(シート2の特定の列)のみ表示させたいとも思いましたが、むずかしくて断念・・・。 もし可能でしたらこちらもお願い致します。 よろしくお願いいたします。

  • エクセルVBAでのデータ抽出についての質問です。

    エクセルVBAでのデータ抽出についての質問です。 下記のような2つのシートがあります。 (シート1) AA BB CC DD EE FF GG HH ←タイトル(複数固定) ああ いい うう ええ おお かか きき けけ ←値 ささ しし すす せせ そそ たた なな はは ←値 まま みみ むむ めめ もも らら りり るる ←値 (シート2) AA FF HH ・・・ ←タイトル(数は変更あり) シート1にタイトルの付いたデータが100列ほどありまして、 シート2に抽出したい列だけのタイトルを並べたとします。 このシート2のタイトルに入れたデータのみをシート1から列ごと 抽出してきたい場合、マクロで可能でしょうか。 本来はアクセスなどを使ってデータベースでクエリ抽出してくるものだと思いますが、 マクロでなんとかしたいと思っております。

  • 複数のExcelブックから特定シートの特定セル抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル値を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 よく似ている質問、回答を読んだのですが、私のレベルではとても応用できず質問させていただきます。 全く同じものがあれば、そのアドレスを回答いただくだけでも助かります。 【前提】 ・実行する端末のOSはWindows XP(SP3)、Excelは2003 ・対象フォルダはネットワーク接続フォルダ「\\share\target」  この中に、複数のExcelブックがあります。 ・抽出したい対象は、各ブック内の「概要」シートの「C3」セルで統一されています。 【抽出一覧作成イメージ】 ・「集約.xls」ブックの「Sheet1」の2行目から抽出した結果を一覧表示する。 ・表示はA列に抽出元ブック名(=ファイル名)、B列に抽出元C3セルの値。 ・C3セル値を「集約.xls」ブックの「Sheet1」に貼り付ける際には「値で貼り付ける」が望ましい。 というようなイメージです。 とても勝手なお願いではありますが、宜しくお願いいたします。

  • calcの計算式について

     A列 B列 1 aa 500 2 bb 210 3 cc 140 4 aa 520 5 cc 140 6 bb 20 7 cc 420 ・ ・ という100行ぐらいのデータの aa bb ccごとの合計を出す場合は どのように計算すればいいでしょうか? 例えばaaの合計は1020です。 よろしくお願い致します。

  • 複数のエクセルブックから特定シートの特定セル抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル値を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 よく似ている質問、回答を読んだのですが、私のレベルではとても応用できず質問させていただきます。 【前提】 ・実行する端末のOSはWindows XP(SP3)、Excelは2003 ・対象フォルダはネットワーク接続フォルダ「\データ解析\データ」  この中に、複数のExcelブックがあります。 ・抽出したい対象は、各ブック内のシート(シート名はファイル名と同じ)の「BO6からBW16までの□の範囲」で統一されています。 【抽出一覧作成イメージ】 ・「集計.xls」ブックの「Sheet1」の2行目から抽出した結果を一覧表示する。 ・表示はA列に抽出元ブック名(=ファイル名)、B列に抽出元BO6セルの値。以降,C列・D列と 順に値を入れていきたい。 ・BO6~BW16までのセル値を「集計.xls」ブックの「Sheet1」に貼り付ける際には「値で貼り付ける」が望ましい。 というようなイメージです。 とても勝手なお願いではありますが、宜しくお願いいたします。

  • VBA 別BOOKへのデータ転記について

    VBA初心者です。 以下のことがしたいのですが、 コードをご教示いただきたくお願いいたします。 BOOKが5つあります。 BOOK1:抽出用(Sheet2に日々の受注データを入れています)        BOOK2:転記100用 BOOK3:転記200用 BOOK4:転記300_400_500用 BOOK5:工事番号用 BOOK1:抽出用はA列からQ列まで工事番号ごとに2行目から受注データが入っています。 抽出用のsheet2のA列に「1」と入力することで転記したいデータだというフラグにし、 抽出用O列のコード100,200,300,400,500(工事の種類のようなものです)を見て、 該当のBOOK2から4にその工事番号が転記がされているか? (されていれば登録済みのメッセージ表示) 転記がされていなければ新規に登録、 新規登録の際に、抽出用Sheet2のD列の工事番号、I列の件名、K列の数量を表示して、 このデータを新規登録しますか?のようなメッセージを出し、Yesなら新規登録。 さらに、新規に登録した際にはその工事番号を名前とするBOOK5を新規作成、 BOOK5にも抽出用の受注内容を転記。 BOOK2から4に転記された工事番号をクリックすると その工事番号のBOOK5にジャンプするようにしたいのです。 抽出用A2とA4に「1」と入力された場合(O列は共に200) BOOK1抽出用データの転記したいセル番地  →  BOOK3転記200用のセル番地 A2のデータ D2 → A7 K2 → A8 C2 → A9 H2 → A10 I2 → A11 F2 → D7 L2 → D8 M2 → D9 J2 → D10 C2 → I5 Q2 → J5 A4のデータ D4 → A12 K4 → A13 C4 → A14 H4 → A15 I4 → A16 F4 → D12 L4 → D13 M4 → D14 J4 → D15 C4 → I10 Q4 → J10 BOOK2から4は1つの工事番号を5行使用して表わしています。 ですので、1つの工事番号が7から11の行、 2つ目の工事番号が12から16行目となり、それぞれ100件分の工事番号を入れられるように 作成してあります。 またBOOK5については、(A2のデータの場合)以下のように転記し、ファイル名を抽出用D2の工事番号にしたいです。 A2のデータ D2 → A3 K2 → A4 C2 → A5 H2 → A6 I2 → A7 F2 → F3 L2 → E4 M2 → E5 J2 → E6 大変長くなってしまいましたが、以上のようなことをしたいと考えておりますが、 当方、VBA初心者でして参考書とネットを駆使して抽出用のVBA(CSVデータをコピーして加工する)ことにすら大苦戦しております。 なんとかお力を貸していただけないでしょうか? ご教示よろしくお願いいたします。

  • 条件に合ったデータを抜き出す

      A   B   C   D 1 あ   AA   VV   FF 2 い   CC   FF   HH 3 あ   SS   FF   DD 4 う   SS   EE   AA 以上のようなデータが有るときに、別シートに A列のデータを条件に以下のように抜き出したいのです。 別シートの各セルに式が入っていて、上記データを 変更しても別シートの抽出結果が自動で変わるようにしたいです。 ”あ”の抽出   あ   AA   VV   FF   あ   SS   FF   DD ”い”の抽出   い   CC   FF   HH ”う”の抽出   う   SS   EE   AA

このQ&Aのポイント
  • PX049Aのプリンターを使用していますが、インク交換後に電源が入らなくなってしまった。
  • コンセントを抜いても電源が入らない状態です。
  • EPSON社製品についての質問です。
回答を見る

専門家に質問してみよう