• 締切済み

VBAってこんなこともできるのでしょうか?

 VBA全く初心者の者です。最近異動して、エクセルのルーチン作業が多く、VBAはこうしたルーチン作業がボタン一つでできるというイメージがあり、勉強しようかと思って色々本など見ていますが、いまいち何ができるのかピンときません。  例えば、  毎月エクセルの入金リストから、  1.まず入金の種類の項目から「通常入金」を抽出  2.次に「拠点」項目から「東京」「横浜」をそれぞれ抽出し別シートに分ける  3.次に「東京」シートと「横浜」シートそれぞれの「入金口座」項目から「東京」と「横浜」を分ける。  4.最終的に「拠点東京:入金口座東京」「拠点横浜:入金口座東京」「拠点東京:入金口座横浜」「拠点横浜:入金口座横浜」の4つのシートに分け、それぞれ入金日順に並び変えて入金日毎の集計をかける という作業をしていて、これが結構面倒くさいです。 こういうのもVBAを勉強すると一発でできたりするのでしょうか? 分かりにくくアホな質問ですみません…。

noname#131700
noname#131700

みんなの回答

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.2

こんばんは 詳細が分からないので、正確なことは分かりませんが、VBAで十中八九以上の確率で出来ると思います。 ただし、一番大事なのは、Excelをふくめてコンピューターには「経験と勘」はありません。全くの「新人」と同じで詳細なことも含めて指示をしなくてはなりません。 また、月一回程度の作業でしたら、「オートフィルタ」を使えば、あまり大きな手間無く(慣れれば五分以内)で収まりそうな内容です。 Excel VBAを使うコツは、Excelの機能を知ることです。 普段は、マウスやキーボードからExcelに指示を出している代わりに、プログラムでエクセルに指示を出すと思ってください。

noname#131700
質問者

お礼

 回答ありがとうございます。 >ただし、一番大事なのは、Excelをふくめてコンピューターには「経験と勘」はありません。全くの「新人」と同じで詳細なことも含めて指示をしなくてはなりません。   そう、ですよね。そこらへんが具体的にイメージできなくて…。何ができて何ができないのか…。やはり私にはセンスがないかな。  おっしゃる通り現在はおーとフィルタでやってます。正確には5・10日毎にやってるんですが、他にもこんなような作業があるので面倒くさくて…。ありがとうございました。

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.1

>こういうのもVBAを勉強すると一発でできたりするのでしょうか? はい、可能だと思います。 ただし、今現在のシートの構成がそれに適しているのかどうか分かりません。 人間が手作業でやるときには、(半ば無意識的に)目で見て判断している部分があり、・・・データの抽出範囲や選択基準など・・・それをExcel VBA が同じように判断できる様にしておけば大丈夫です。 Excelには、"マクロの記録"という機能があり、それを使えば、自分が行った手作業をVBA化して繰り返し実行することができます。 また、そうして作られたVBA構文を編集することで、あらたなVBAとして作業を追加することなどもできます。 WEBサイト上でも初心者向けにExcelやVBAの解説サイトを見かけることがありますので、検索して覗いてみてはいかがでしょうか?

noname#131700
質問者

お礼

 早速の回答ありがとうございます! >人間が手作業でやるときには、(半ば無意識的に)目で見て判断している部分があり、・・・データの抽出範囲や選択基準など・・  そうですよね。初心者用の参考書等で見ても、明確な範囲、基準に基づく分かりやすい例が多かったです。  質問文に書いた例の場合、当然ながら毎月の入金データ数は違いますので、範囲は毎回違うことになります。そうなるとやはり難しいんでしょうか。。

関連するQ&A

  • VBA初心者向け書籍

    こんにちは。 今エクセルのVBAの勉強をしたいと思っています。 何冊か本を購入したのですが、よくわからず困っています。 ちなみに購入した本は、 [10日で覚えるExcel VBA]です。 また、私がしたい作業は請求書作成です。 (元帳印刷、入金伝票作成など) 皆さんお勧めの本がありましたら教えてください。

  • Excel VBAで作成するにあたって、画像上部の元データを

    Excel VBAで作成するにあたって、画像上部の元データを 画像下部のように行列位の違いがあるような項目に データを抽出して転記するにはどうしたらよいでしょうか? 手順 ・支店ごとにデータを抽出し、シート名を付ける ・データを転記する VBA初心者で勉強中ですが大変困難です。 どなたか教えてください。よろしくおねがいいたします。

  • VBAでブック内のワークシートを名前をつけて保存

    エクセルVBAで作業中のブックの一部のワークシート(2枚)を名前をつけて保存する方法を教えてください。 (例)  《ブックA》  sheet1 sheet2     sheet3 10/5     10個 10,000円    4個 25,000円 東京     25個 18,500円    6個 42,000円 というブックから『10/5 東京』というブックでsheet2,sheet3の内容を 保存したいのですが・・・ VBAは勉強し始めでほとんどわからないので教えてください。

  • Excel VBAで作成するにあたって、画像上部の元データを

    Excel VBAで作成するにあたって、画像上部の元データを 画像下部のように行列位の違いがあるような項目に データを抽出して転記するにはどうしたらよいでしょうか? 手順 ・支店ごとにデータを抽出し、シート名を付ける ・データを担当者ごとに1行に集約して転記する VBA初心者で勉強中ですが大変困難です。 どなたか教えてください。よろしくおねがいいたします。

  • エクセルVBAでどう書けばいいですか

    お世話になります。 エクセルVBAを勉強中です。 次のようなものは、どのように書けばよいのですか。 「今見ているシートの全ての網かけを選択する」 よろしくお願いいたします。

  • VBAマクロについて

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

  • VBAについて教えて頂けませんか?

    昨日から、エクセル2003を使ってVBAを、勉強している者です。 ネット上で調べながら、取合えず簡単なVBAを入れる事が出来ました、ですがエラーばかりで、どうしても先に行けず困っています。 ネット上で参考になる、VBAなどを見て思ったのですが エクセルのVisual Basicを開くと、左側に「Sheet1」とか「Module1」等があります。 参考になるVBAでは、「Sheet1」に書かれているのがあれば、「Module1」に書かれているのもあります。 VBAは「Sheet1」に、書き込まれるべきなのでしょうか?それとも 「Module1」に、書き込まれるべきなのでしょうか? 私の場合、例えば「1」「2」「3」と数字を打ってマクロの記録をして、Visual Basicを開くと、すべて「Module1」に書き込まれます。 すみませんが、教えて頂けませんか?

  • エクセル VBA ' " ! & の使い方

    エクセル VBA ' " ! & の使い方 VBAを独学で勉強している、超初心者です。 同じシート内でのVBAを作るのはなんとなくできるようになったのですが、別のシートのデータを参照したいときなど、(シート名を変数にしています)うまく動作できません。 ' " ! & の使い方をやさしく解説してください。 よろしくお願いします。

  • エクセルVBAについて

    今、エクセルVBAでマクロの作成を行っています マクロの中で、作業用に別なエクセルとシートを作成したのですが マクロの最後でその作業用のエクセルとシートを削除する用にしました。 その際に、エクセルがメッセージボックスが開き 『このエクセルブックを閉じますか』や『このシートを削除してよろしいですか』などと聞いてきます。 このボックスを出さないように強制的に消すことは出来ないのでしょうか? 出来るのであれば、やり方を教えてください。

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

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

専門家に質問してみよう