• 締切済み

エクセルマクロの特殊なテクニック?

 いつもお世話になっております。  マクロの勉強を兼ねて、先輩の作ったマクロの記述をみていると、多くのデータベースを作るのに、あちこちのブックを開いて、ブック間で比較や検索をしています。 私自身は、全てのワークスペースを一つのブックの中に(まさに)ワークシートを増やして作業しているのですが、外のブックにワークエリアを持たせることに何か意味があるのでしょうか?  私の考えでは、処理速度が落ちたり、リソースを無駄に使ってウィンドウズを不安定にしているだけのような気がするのですが、これって、ベテランには当たり前のテクニックなのでしょうか?  ちなみに、作業後のブックに、特に記録が残るような使い方をしている訳ではありませんでした。ブック名もBook1とか、そのまんまですし・・・。  何かご存知の方がいらっしゃったら、ご教授ください。  勿論、もう、その先輩に聞けないので、ここに質問しています。

  • psss
  • お礼率86% (38/44)

みんなの回答

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

>「多くのデータベースを作るのに、あちこちのブックを開いて、ブック間で比較や検索をしています。」 会社のデータベースが悪い例なんでしょう。勝手勝手にエクセル表を作ってしまったため、あっちこっちに項目が分散しているので、 それらを見に行って、情報の「結合」をしているのだと思います。だから先輩が悪いのではないと思う。 >「全てのワークスペースを一つのブックの中に(まさに)ワークシートを増やして作業しているのですが、」 一つのブックの中で作業しているのは見識ですが、そんなにワークシートをフルに使わなければならないようなワークエリアが要るケースというのは想像できません。 私の経験が偏っていることは反省しているが。 ●昔風なんですが、バッチ処理であれば、ソートとマッチングの手法を繰り返しJOB毎に使えば、一時に開くシートまたはブックは2つで良くスッキリすると思いますが。 ●出来ればアクセスなどでシステム化すれば、スッキリするところを、部内各人の主張か自然発生に任せて、エクセルしか知らない人が、エクセル表をそれぞれ自己流に作ったため、後で、情報を「総合」した資料・表を作る必要が起こったときに、先輩は苦労していたのだと思う。 ●エクセルVBAは、システムを本格的に作る一部というより、必要に迫られて、他のプログラムを組める人が片手間的に作ったり、プログラムを組むのが初めての人が組んでいるケースが多く、やはりそれなりの出来になっているケースがあると思う。先輩の組み方というだけで、こだわる必要はなく、自己流を後日のいろいろなケースに反省すれば良いのでは。スッキリしてないのであれば、後刻の参考にならないし、頭に残らないでしょう。

psss
質問者

お礼

 残念ながら、意図していた質問についての回答がいただけないようですので、これで締め切らせていただきます。  また、何かありましたらよろしくお願いします。

psss
質問者

補足

 すいません、説明不足でした。 そのメイン以外のブックがデーターベースではなく、そこのシートへクエリーで本物のデータベースから絞り込んだデータを転送し、そのシート間でチェインしているのです。  具体的には説明しますと。 Aに社員の所属と個人コードを示したデータがあります。これを本体のシート1に引きます。 Bに各社員がいつ、どこで、どんな仕事をしたかの記録が全てコード化されてあります。これをブック1のシート1に日付で絞って引きます。 Cに仕事をした場所と内容のコードが記されたデータがあります。これをブック1のシート2に引きます。  これらをチェインさせて、いつ、どこで、だれが、どんな仕事をしたか、判りやすく表にします。  実際は、何をどれだけ使ったか、とか様々なデータベースがあり、それぞれの一部分しか共通点がないので、組み合わせて全貌を表現するには沢山シートが必要なわけです。  私の場合は、各データベースに対応するだけ、一つのブックにシートを作っておいてマクロを組んでいますが、その方は、無印ブックを2~3個用意してあって、それをわざわざ開いているのです。  ですから、それに何か特殊なメリットがあるのかと思ったわけです。 imogasiさんはどう思われますか?

回答No.1

どのような作業のマクロを作成しているのかによりますが。 同じような作業だけど別の仕事に使う場合とか、 データベースのこの部分は同じだけど、 作業はまったく違った手順とかいった場合に、 ブックを分けておくと、使いまわしが出来るということではないかと。

psss
質問者

お礼

 残念ですが、意図していた質問に対する回答が得られないようですので、これで締め切らせて戴きます。  また、何かあったらよろしくお願いします。

psss
質問者

補足

 ブック自体にデータやマクロが入っている訳ではないし、実行後もデータが残るような使い方をしているのではないのです。  しかも、その方の作ったマクロって、全てがそんな感じで、ワーク用に別の場所にブックを置いて、わざわざ開いて使っているのです。  ですから、何かあるのかな、とかんぐってしまったのですが・・・  では、率直に質問させていただきますが、メインのブック内のシートで充分な場合、わざわざ別ブックにする必要はあるでしょうか?

関連するQ&A

  • マクロについて

    教えてくださいm(__)m Excel2000です。 マクロでコトを簡単にして作業したいとおもうのですが、 (マクロ初心者です) たとえば、ツール→マクロ→新しいマクロの記録 で、操作した内容を記録するマクロで、 作成したマクロは、そのシートでしかつかえないのでしょうか?同じブック内なら大丈夫ですか? そのマクロを他のシートとかブックでつかうには なにか操作が他に必要ですか? visual basic editor の画面でなにか記述しないとだめですか? たとえば、ほかのブックやシートで使うには どのような操作をするのでしょう?具体的に 説明してもらえたらうれしいのですが。。

  • Excelのマクロについて

    Excelのマクロについて excel2003で,マクロの自動記録を勉強中です。 [ツール]-[マクロ]-[新しいマクロの記録]でマクロ名を入力し,(マクロの保存先を「作業中のブック」として,)[OK]をクリックすると マクロの記録が始まります。 マクロの記録終了後, [ツール]-[マクロ]-[マクロ]で「マクロ」ダイアログボックスを見ると,マクロ名が表示されます。 この場合は実行も正常にできます。 しかし, ブックを一旦保存した後,開いて,マクロを実行しようと, [ツール]-[マクロ]-[マクロ]で「マクロ」ダイアログボックスを見ると,マクロ名が(マクロ名単独ではなく)ブック名とともに表示されます。 実行するとエラーになります。 何が悪いのか分かりません。なにか基本的なミスがあるのかも知れないと考えました。 原因(ミス)に心当たりのあるかた,是非教えてください。

  • Excelマクロ

    50枚くらいの別々のExcelスプレッドシート(別ブック)に入っている様々な文字列を変更したいと思っています。 (例えば、rose→daisy, pink→red, apple→orangeなど) この場合、この一連の「置換」を使った操作をマクロに記録させ、そのマクロを別のブックに入っているスプレッドシートにも適用することはできますか? 聞いたところでは、「マクロの記録」で記録されたマクロは、VBAで編集できるとのことなのですが、 そのVBAは、エクセルのどこから取得することができるのでしょう? そのVBAを別のスプレッドシートに都度コピーペーストすることにより、あるスプレッドシートに記録されたマクロを他のスプレッドシートに記録することはできますか? また、この方法がワークしない場合、別のやり方で目的を達成することはできますでしょうか? どなたかどうぞお知恵をお授け下さい。宜しくお願いいたします。

  • エクセルでマクロを組んでいないのにマクロの警告が

    エクセル2003でマクロを使用せずに作業をしているのに ある日突然ブックを開こうとすると「マクロを有効にする・無効にする」 という警告文が出てしまう。 どうしてでしょうか? 警告文を消す方法はありませんか? マクロの記録がないのに警告が出ます。 どなたかどうぞ教えてください。

  • エクセル:マクロの保存先(I):どれを選択するの?

    【新しいマクロの記録】→マクロの保存先(I): (1)個人用マクロブック (2)新しいブック (3)作業中のブック どれを選択すればいいのでしょうか? 次の場合は、(1) (2) (3)の どれを選択すればいいか? ◆マクロ専用のファイルにマクロを記録して、必要なときに呼び出して使いたい。

  • マクロを利用してエクセルに任意の複数行を作り、外部データベースからエクスポートとしたtextデータを貼り付けたいのですが?

    外部のデータベースからエクセルのマクロを使って、作業をしたいと思っています。Aのワークシートに外部データベースからの任意の数字をコピーし、さらにBワークシートにその任意の数字だけの空欄の行を挿入し、データベースからメモ帳形式でエクスポートしたtextデータを貼り付けたいと思っています。AとBは できれば、別のブックで作業をしたいと思っています。この作業を200回ぐらい行いたいのですが、かなり数の多い作業になると思うので、マクロをうまく使えればと思うのです。が、初心者なので、お教えいただければ幸いです。 よろしくお願いいたします。(うまく実情が伝わっているか、不安ですが)

  • マクロについて教えてください。

    マクロについて教えてください。 Aと言うブックがあります。 それと同じフォルダ内に複数のブックがあります。 その複数のブックからAに、コピーして貼り付けして…と作業を記録しましたが、エラーになってしまいます。 複数のブックはマクロ実行時、Aと一緒に開いてないといけないのでしょうか?

  • エクセルのマクロの勉強中です。

    エクセルのマクロの勉強中の初心者です。 あるホ-ムペ-ジで、マクロの自動記録から勉強を始めたのですが、 解説通り マクロ名にデ-タの消去 マクロの保存先に作業中のブック 説明にマクロ記録日 ユ-ザ-名にセルA1のデ-タ-を消去する と入れOKとすると、その名前は正しくありませんと表示されてしまいます。 どこが悪いのでしょうか?

  • マクロの保存先を変更するには

    検索してみたのですが見つからなかったのでお願いします。 簡単なことかもしれませんが。 以前、マクロの自動記録で「作業中のブック」へマクロを保存しました。 今回別のブックでも同じマクロを使いたいと思ったのですが、一旦マクロの保存先を「作業中のブック」にして保存したものを「個人用マクロ(Personal.xls)」に変更するのはどうすればよいのでしょうか? WindowsXPで、Office2000を利用しています。 よろしくお願いします。

  • Excelマクロ Book1にコピー 汎用性が無い

    こんにちは。 Excel 2007を使用しています。 決まった作業をマクロの記録で行うのは簡単ですが 毎回変わる部分をマクロ化するのは難しいです。 マクロで行った結果を新しいBookにコピーしようとすると 以下のようにBook1という文字列が作成されます。 Workbooks.Add Windows.Arrange ArrangeStyle:=xlHorizontal Windows("data.xlsm").Activate Selection.Copy Windows("Book1").Activate ActiveSheet.Paste 作業を連続で行うとBook2,Book3と番号が変化するので 汎用になりません。 このようなときはどのようにマクロを書けばよいのでしょうか? ご存じの方お教えください。

専門家に質問してみよう