- 締切済み
VBAマクロについて
エクセルVBA初心者です;; よろしくお願いいたします エクセルで馬データを管理しています シート1:500頭くらいのデータがずらっと並んでいます シート2:シート1のデータより一部の馬を50頭抜き出しています シート1・2ともに、csv抽出マクロを埋め込んでいます シート1にシート1のデータ抽出ボタン、シート2の内容を抽出するボタンを追加しました シート1・2ともカラム構成が異なっています やりたいことなんですけど、シート1でシート2の内容を抽出できないものかと思います シート1からシート2の関数を呼び出しかつ、抽出対象データがシート2という感じで出来ないものでしょうか? シート2に移ってボタンをクリックすればいい話なんですけど、これからシートを追加するので あとあと面倒だと。 ご伝授お願いします
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- K-Sogacchi
- ベストアンサー率53% (50/93)
うーん、いまいちピンと来ないけど、 >シート1からシート2の関数を呼び出しかつ、抽出対象データがシート2という感じで出来ないものでしょうか? の件は、 シート1の処理中で Call Sheet2.CSVWrite_AA とかで普通に呼べるんでは? (Sheet2.CSVWrite_AA をPrivateで宣言してたりしたら無理だけど、そこは Private外すか、Public宣言しましょう) あと、Sheet2.CSVWrite_AA の中では、Rangeとかの参照を全てWorksheetから 書いておけば(Range("A1")とかじゃなくて Sheet2.Range("A1")とかにする)、 どこから関数を参照しても対象データはSheet2になるし。 …これで片付く話では ないんだろうか?
- hige_082
- ベストアンサー率50% (379/747)
無理です 何を聞きたいのか? Sub CSVWrite(Optional SH As Worksheet)のプログラムも?? CSVになぜ書き出す必要が??? もう少し簡潔な質問を、お願いします
- imogasi
- ベストアンサー率27% (4737/17070)
シート2でボタンで出来たなら、シート1のボタンを作って抽出機能を移すのは、たやすいと思うのだが、どう言う点で困って居ますか。 質問が質問者には判るが。読者には伝わりにくい。 >関数ーー>ワークシート(普通の)関数ですか。VBAのFunctionのこと? >csv抽出マクロ こんな言葉はここの過去の質問で聞いたこともなく本でも見たこと無い。どういういみ? >csv抽出マクロを埋め込んでいます 以上三点は質問の本質とは関係なさそうだが。公の場に、沢山の読者の前に質問を出すのだからしっかり書いてほしい。 埋め込むとは? >抽出 どんな風なコードで抽出してますか ーー シート2のデータを対象に ある条件で抽出し シート2に納める?? キッカケのコマンドボタンはシート1に張り付け?
補足
imogasiさん、丁寧に有難うございます 言葉足らずで申し訳ありません >関数ーー>ワークシート(普通の)関数ですか。VBAのFunctionのこと? A.Sub CSVWrite(Optional SH As Worksheet) ・・ ・・ End Sub のような記述で、・・の中にPrivate Function ××を複数作っています >csv抽出マクロ こんな言葉はここの過去の質問で聞いたこともなく本でも見たこと無い。どういういみ? A.シート1の構成は、『uma_id』『uma_sex』『uma_record』・・・・を見出しと 500レコード(件数)がシート1にあります。それを、1レコードづつ読み込んでcsvに吐き出すプログラムが csv抽出マクロです(自作です) uma_id uma_sex uma_record a1 hin 3:33:33 a2 bo 2:22:22 a3 hin 1:11:11 抽出されたcsvイメージです >csv抽出マクロを埋め込んでいます 以上三点は質問の本質とは関係なさそうだが。公の場に、沢山の読者の前に質問を出すのだからしっかり書いてほしい。 埋め込むとは? A.埋め込むの表現がよくなかったですね。2番目の回答で応えた自作プログラムをインポートしているイメージです シート1は、ボタンをクリックすると、Sub CSVWriteが呼ばれ シート2ボタンをクリックすると、Sub CSVWrite_AAが呼ばれています シート1の見出し数・・・10項目 シート2の見出し数・・・7項目 シート1,2の項目数が同じであれば、Sub CSVWriteをシート1,2で使えばいいんでしょうけど・・・ なので、シート1に、シート2で使っているSub CSVWrite_AAを呼び出すボタンを追加して実行しても、10項目が抽出されしまいます 理想は、7項目抽出したいのです。抽出対象レコードもシート2が対象としたいです ごちゃごちゃしてしまいましたが、宜しくお願いします