• 締切済み

VBAマクロについて

エクセルVBA初心者です;; よろしくお願いいたします エクセルで馬データを管理しています シート1:500頭くらいのデータがずらっと並んでいます シート2:シート1のデータより一部の馬を50頭抜き出しています シート1・2ともに、csv抽出マクロを埋め込んでいます シート1にシート1のデータ抽出ボタン、シート2の内容を抽出するボタンを追加しました シート1・2ともカラム構成が異なっています やりたいことなんですけど、シート1でシート2の内容を抽出できないものかと思います シート1からシート2の関数を呼び出しかつ、抽出対象データがシート2という感じで出来ないものでしょうか? シート2に移ってボタンをクリックすればいい話なんですけど、これからシートを追加するので あとあと面倒だと。 ご伝授お願いします

みんなの回答

回答No.3

うーん、いまいちピンと来ないけど、 >シート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)
回答No.2

無理です 何を聞きたいのか? Sub CSVWrite(Optional SH As Worksheet)のプログラムも?? CSVになぜ書き出す必要が??? もう少し簡潔な質問を、お願いします

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

シート2でボタンで出来たなら、シート1のボタンを作って抽出機能を移すのは、たやすいと思うのだが、どう言う点で困って居ますか。 質問が質問者には判るが。読者には伝わりにくい。 >関数ーー>ワークシート(普通の)関数ですか。VBAのFunctionのこと? >csv抽出マクロ こんな言葉はここの過去の質問で聞いたこともなく本でも見たこと無い。どういういみ? >csv抽出マクロを埋め込んでいます 以上三点は質問の本質とは関係なさそうだが。公の場に、沢山の読者の前に質問を出すのだからしっかり書いてほしい。 埋め込むとは? >抽出 どんな風なコードで抽出してますか ーー シート2のデータを対象に ある条件で抽出し シート2に納める?? キッカケのコマンドボタンはシート1に張り付け?

tokoto2008
質問者

補足

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が対象としたいです ごちゃごちゃしてしまいましたが、宜しくお願いします

関連するQ&A

  • VBAマクロでCSV出力

    はじめまして、よろしくお願いします。 ExcelのVBAマクロで 特定のセルの範囲を「シート名.csv」で出力するようなプログラムを書きたいです。 例)シート名「TEST」内にあるマクロボタンを押すと  A1:A10のセルの内容が「TEST.csv」(アスキー形式ならなんでも)  に出力される。 どういうやり方があるか、お勧めのサイト等、 ご教授いただけないでしょうか? 以上、よろしくお願いいたします。

  • エクセルのVBAマクロについて

    エクセルのVBAマクロについて、添付のような物を考えているのですが、宜しくお願いします。 B3~E15に関数を入れて、TRUE となったデーターを表示 させるまでは出来たのですが、このデーターをF~I列へ上から順に (空白行は詰めて)順次記録して行きたいのです。 B3~E15に表示させるデーターは、別シートから抽出し、 切り替えますので、結果を表示させたら、ボタンを押して記録し、 再度別データーを入れたらその下に記録して行くような仕組み を考えております。 宜しくお願いします。

  • ACCESS VBA マクロ  Excelのデータをインポートする(複数シート)

    ACCESSのVBAでEXCELのシートにあるデータをインポートしたいです。シートは複数あり、シート数は作業毎に一定ではありません。データの数もシート毎に違います。(項目(column数)は全部同じです) 手作業でインポートをすると、どのシートのデータをインポートするかウイザードで選択しますが、シート数が多いので一度に同じテーブルにインポートをするVBAを組みたいのです。(データ数が多いのでエクセルで一つのシートにまとめる事が出来ません。) シート数がその都度違うので変数を使ったりVBAでインポートするのかな?と思うのですが。。。 インポートするベースのテーブルは先に作ってあり、データをインポートする際にそのテーブルに追加する形にしたいと思っています。 excelのVBAは初心者ですがAccessでのVBAの経験がありません。 ACCESSでのマクロ、VBAを良くご存知の方がいらっしゃったら是非教えてください。どうぞよろしくお願いいたします。

  • VBAを利用したCSV出力

    現在エクセル2003のVBAを使用して、シートの内容をcsvファイルに出力するマクロを作成しています。 Sheet1にこのマクロを動作させるボタンがあり、Sheet2の内容を出力したいと考えています。 しかし、ネットで探したところ、ほとんどのものが、Sheet1も内容を出力するマクロで、Sheet2の内容の出力の仕方がわかりません。 どなたかマクロの書き方、もしくはサンプルコードのあるサイトなどご存知の方がいらっしゃったっら教えていただけないでしょうか?

  • 別のアプリケーションとエクセルマクロについて

    エクセルとは別のアプリケーションのデータの文字をコピーして エクセルのシートのある決まった位置に張り付ける、ということを 簡単に行いたいのですが、(マクロ的にボタン一つとか) どういった方法がありますか? エクセルのVBAマクロは作っていますが、 別のアプリからデータをコピーして持ってくるというのは、できないですよね。 (csvとかに落とすこともできないデータです。) 別のアプリの文字をコピーする段階で、VBAでは無理だと思うので、 他のプログラム言語だと、そういうことができますか? C言語は少し習いましたが、何か最適な方法や、 このプログラム言語だと、簡単にできるというのがあれば、教えてください。 よろしくお願いいたします。

  • VBAマクロの組み方

    Excelのマクロで、どのように組んだらいいのか、それがマクロで可能かどうか教えて下さい。 横一列に並んだcsvのデータをボタン一つで、選択したセル範囲全体が縦一列になる。 例) ○○○,0:12:50,△△△,0:05:40 … ○○○,0:27:32,△△△,0:30:11 … ○○○,0:08:02,△△△,1:18:12 … ○○○,0:34:17,△△△,0:19:06 … ボタンを押すと、△△△,時間 が○○○,時間 の下に移動する。 ○○○,時間  : △△△,時間  ←こんな感じ  : このようなことはできますでしょうか。

  • エクセル(VBA)にて、CSVファイルを自動的に読み込むマクロ。

    aaa.csvというcsvファイルがあるとします。 そこで、 エクセルのあるシートにボタンを用意して、マクロを登録し、そのボタンを押すと、sheetという名前のシートへ一発入力(インポート)するようにしたいのです。 マクロをいじったりしましたが、だめです。 よろしければ、上記のような動作をするためのソースを簡単に提供いただけないでしょうか? *マクロの記録は使いたくないです・・・。 すみませんが、よろしくお願いいたします。

  • EXCEL2010 マクロにつきまして

    excel vbaでマクロが作りたいのですが、まったくの初心者で 試行錯誤していますが、なかなか出来ずに困っています。 どなたか、教えていただけませんでしょうか。 ○sheet1 --日付---|A-B-C -------------------- 2013/1/20|1 2 3 2013/1/21|4 5 6 2013/1/22|7 8 9 2013/1/23|5 4 3 2013/1/24|4 5 6 2013/1/25|4 4 4 2013/1/26   ・   ・   ・ ○sheet2 実行ボタンを作成 日付を入力して実行ボタンをクリックすると指定した日付のデータが抽出される 例 2013/1/22 → 実行 A B C ------- 7 8 9 このようなマクロを組みたいのです。 わかりづらくて申し訳ありません。 また、初心者向けのおすすめの参考書や、ホームページがありましたら 教えて頂けると助かります。

  • フォームから抽出の自動化(VBAかマクロ)

    フォームから条件を入力して抽出したいと思っています。 できればボタンでいっきに抽出したので、クリック時にイベントが起こるようにVBAかマクロを設定しようと思ってます。 ある3種類のデータがあって、ボタンによってその種類ごとのデータのみ抽出し、他のデータをみずにその種類のデータのみ変更したいと思っています。 そのためフォームからの抽出がしたいのですが、できればShift+F9をボタン一つで終わらせたいのです。 できるだけキーボードを使わない方向でいっています。 わかりにくいのですが、フォームのテキストボックスに特定の番号を入れ、その上でShift+F9ができるVBAができるか知りたいです。 よろしくお願いします。

  • エクセルのマクロ(VBA?)でデータの取込と保存をしたいのですが?

    エクセルのマクロとVBAの違いもよくわかっていない素人ですが教えていただけると助かります。 ある値段情報AがテキストファイルまたはCSVファイルなどで保存してあり、それを1つずつ読み込み、エクセルのシート上のセルAに表示させる、それをマクロ?(プログラム)で、1つ目より2つ目のほうが高ければ、そのまま高いほうを表示させておき、安いほうは別のテキストファイルに書き込むようなことって可能ですか? つまり、処理するごとに、テキスト(CSV)のファイルからデータの読み込みと書き込みを行うようなことってできますか?もしできるのであれば、そのやり方について詳しく教えてください。詳しいホームページもあれば教えてください。よろしくお願いします。