• ベストアンサー

Excelのマクロを勉強したいのですが

本来の業務ではないのですが、仕事上、あればずいぶん楽になるのにと思うところがあって、自分で本を買って勉強しようと考えています。 近所の書店でぱらぱらと立ち読みをしただけですが、読んでも理解できないせいか、どういったものが入門書として適当なのか。。。 まったくの初心者です。「マクロの記録」などで試してはみるのですが、中身を見ても何をしているのか良く分かりません。「今、こういう作業をしたからこれはこういう事かな?」と何となくやってみても、今やった事が繰り返されるだけで、同じような大量の仕事を片付ける事はできないでいます。たぶんループ(繰り返し?)の記述の仕方だけでも分かれば、かなり作業が楽になるのでしょうが。。。 ちなみに、マクロでやりたいことは、エクセル(またはCSVなどの)ファイルの不要な行・列を削除したり、他のシートを参照して必要な部分をコピー&ペーストしたりすることです。それほど高度な事ではないと思うのですが、できればほとんどの作業を自動化したいと思っています。 どうぞよろしくお願いします。

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

  • ベストアンサー
回答No.2

はじめまして。 マクロを勉強したいのであれば、検索サイトで「VBA」という言葉を検索してみてください。 「VBA」とはExcelやWordなどのマクロに使われているプログラミング言語です。 いきなり参考書を買っても自分に合わないと無駄になってしまいます。 まずは、知りたい項目を見つけること。 それから知りたい項目について多く書かれている本を買うのがいいと思います。

参考URL:
http://www2.cty-net.ne.jp/~hidenori/index.html
tokyoboy
質問者

お礼

回答ありがとうございます。 確かに、本を買ってみたはいいけれど、必要な事が書いていなかった、というのはよくありますね。 まずは紹介してくださったサイトなどで勉強してみます。 ありがとうございました。

その他の回答 (2)

  • biwajima
  • ベストアンサー率20% (29/140)
回答No.3

以前マクロ入門書についての質問がありました。 参考にどうぞ

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=866895
tokyoboy
質問者

お礼

回答ありがとうございます。 参考になります。 どれが自分に合うのか、実際に見て購入しようと思います。 ありがとうございました。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

マクロ記録でループに直したいなら、相対記録(記録終了ボタンの右にあるボタンを押した状態で記録)を使うとやり易いです。 セルA1を選択した状態から相対でマクロ記録を始めて、A1に1を入力してからA3を選択してから終了させると下記の記述になります。 Sub Macro1()   ActiveCell.FormulaR1C1 = "1"   ActiveCell.Offset(2, 0).Range("A1").Select End Sub 意味は「アクティブセルに1を代入」「アクティブセルから2行下で、同じ列(0列)を選択」です。 これをループで100回繰り返させ、ついでに代入する値も変化させます。 Sub Test1()  For i = 1 To 100   ActiveCell.FormulaR1C1 = i   ActiveCell.Offset(2, 0).Range("A1").Select  Next i End Sub これだとスタートするセルが実行時のアクティブセルに依存するので、あくまでスタートするセルはいつも同じセルにするため、ループに入る前に記述を加えます。 Sub Test2()  Range("A1").Select  For i = 1 To 100   ActiveCell.FormulaR1C1 = i   ActiveCell.Offset(2, 0).Range("A1").Select  Next i End Sub ちょっと書き換えると結構便利になります。 For ~ Next と Do ~ Loop 、あとは IF文(IF ~ Then ~ End IF)あたりを覚えるとマクロの幅が広がります。

tokyoboy
質問者

お礼

早速、例を挙げていただいての解説、ありがとうございます。 でも、びっくりいたしました。いきなりなんで。 よく読んで、参考にさせていただきます。 ありがとうございました。

関連するQ&A

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

    いつもお世話になっております。 エクセルのマクロについて質問させていただきます。 仕事上測定した10回データを、エクセルで計算させ平均やσ出すという処理を毎回しているのですが、測定したデータというのが、csvファイルで10個できあがり、それを一つずつ開いては貼っての繰り返しをしています。 この作業をマクロで自動的に出来ないものかと思い質問させていただきました。 装置によって毎回.csvの前のファイル名が変る恐れがあるので、csvファイルの入っているフォルダ(ディレクトリを指定)を指定し、その中にあるcsvファイルを自動的に貼る事が出来る事が理想です。 VBAではこのような処理のサンプルプログラムがあるのですが、VBAはあまり解らないので出来ればマクロの記録からできればと思います。 宜しくお願い致します。

  • Excelでファイルを開くをマクロで行いたい

    マクロ初心者です "ファイルを開く"をマクロの記録で記録させると ChDir "C:\Documents and Settings\○○\△△\※※" Workbooks.Open Filename:= _ "C:\Documents and Settings\○○\△△\※※¥LotLog20070131.csv" Windows("●●●.xls").Activate End Sub と記録されます この中で 開きたいファイルネ-ム(上記ならばLotLog20070131.csv)を "●●●.xls"の どこかのセルを参照に開きたいのですが どうすれば宜しいのでしょうか?

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 たとえば、 セルA1からAA1までのセルの中で、コピーとペーストを行います。(これは記録マクロで作ります) それと同じ作業を、3行下のA3からAA3の行でも行い、 また、3行下のA6からAA6の行で行う といった作業をマクロで作る方法を 教えていただきたいです。

  • 「マクロの記録」をしてからそのままコマンドボタンにコードを貼付け

    マクロ操作にあまり詳しくないので教えてください。 仕事で、エクセルを使うときに毎月大量に同じ作業をする事があり面倒なので「マクロの記録」をとり実行していました。 あまりにも同じ作業の繰返しが多くてマクロの実行画面を呼び出すのも面倒になったのでコマンドボタンを作って「マクロの記録」に書かれているコードを貼付けたのですが途中で作業が止まってしまいうまく動作してくれません。 ただ貼り付けるんじゃダメなんでしょうか?

  • エクセルのマクロについて(初歩的な質問)

    現在、エクセルのマクロを使用して作業を行っている者です 初歩的な質問で申し訳ございませんが マクロの(記録中に表示される)ショートカットが突然消えてしまい 「相対参照」が出来なくなってしまいました そこでなのですが 相対参照を有効にする もしくはマクロのショートカットを復活させる方法を知っている人がいれば、教えてください

  • マクロにて

    エクセルでコーピー&ペーストの 繰り返しをマクロに記録していますが データ量が200を超え尚且つ 異なるシート間のやり取りで途中 間違いやなんかでもうかれこれ 2時間やってます。「VBA」を 使ってと思ったのですが どこのサイトいってもこんな簡単な 作業の記述がなく、泣きそうです。 Sheet8の「D13」をコピー sheet1の「A8」にペースト(ただしセル結合してます)sheet1の「A26」(10枠目)まで 行ったらsheet2の「A8」・・・以下繰り返し sheet8のデータが終了したら完了。 エクセルに興味を持ち始めて 公私ともに使いこなせるよう 勉強中です。是非ご教授ください あと超初心者でもわかり易いサイト あったら教えてください

  • エクセルマクロでyy/mm/dd形式のCSVデータの読み込み方を教えてください。

    エクセル2003使っています。 毎日の業務で、売上データのCSVファイルをエクセルで開き、集計する作業を行っているのですが、マクロを使ってもっと楽に作業が出来ないかと素人なりに勉強中の者です。 自分ではあまり書くことが出来ませんので自動記録をやっていたのですが、CSVファイルを開くと、06/12/27のデータが2027/12/27となってしまいます。CSVファイルをそのまま選択してエクセルで開くと2006/12/27と認識してくれるのですが、マクロでこのように表示させるにはどのようにすればよろしいのでしょうか。データは列ごとに項目が分かれている形で、売上、商品名、日付等があります。その中でこの日付がうまく処理できませんので、お分かりの方、是非ご教授お願いします。

  • Excelのマクロの結合方法を教えてください

    Excelのマクロを使っての処理を少しだけ使うようになりました。 「これがコンピュータなの!」と一瞬で作業が進みます。(当然ですね。) ☆・・・・・☆ マクロについて学びたいので、数冊の「基本技」などの参考書籍を購入しました。 でも、わかりません。 現在は、「マクロの記録」で始めて「記録の終了」でマクロを記録してボタンに登録して「マクロを利用」しています。 ボタンが増えてしまうのです。(泣・・・) ☆・・・・・☆ マクロの編集を開くと何にも分かりません。 (Sub Macro1)   End Sub (Sub Macro2)   End Sub (Sub Macro3)   End Sub  ----- と、作成した順にマクロが書かれていることが分かりました。   我流でそれぞれを繋ぐと止まってしまいます。  ☆・・・・・☆ このように、記録によって書かれた複数のマクロを繋げて、一個のマクロに纏める書き方のポイントを教えてください。 また、このように記録されたマクロ(テンプレートでも可)の推敲(朱筆?)から入門するような参考書名をご存じでしたら具体的に教えてください。   ☆・・・・・☆

  • エクセルマクロでファイルを開いて保存したいです。

    エクセルマクロでファイルを開いて保存したいです。 エクセルファイルでファイル名「編集」という物を開きます。 このSheet1には中央にコマンドボタンが作成して有ります。 このボタンをクリックして以下の作業をマクロで行いたいです。 1.エクセル標準の「ファイルを開く」のメッセージボックスが開く 2.ここは使用者が作業をしてもらう   マイドキュメントだったり、マイネットワークだったり、   (ファイルの種類はCSVにする)   処理をしたいCSVファイルを探してもらい選択後、開くをクリック   例えば20100922.CSVを選択し開くをクリック 3.クリックと同時にそのファイルが展開されて、「編集」のエクセルファイルの   Sheetにシート名「集計」が作成されそのシートにCSVファイルの全内容がセルA1から貼り付く。   さらに登録してあるマクロモジュールで編集処理がされ   マクロを引き継がず、シート「集計」だけを   ファイル名は固定でそのファイル名の後ろに作成日(システム日付)を入れて   参照したCSVファイルの保管場所に保存する。   ファイル名例:売上20100923.xls(売上は固定) 4.エクセル「編集」のファイルからシート「集計」を削除する。 5.メッセージBOXで「編集終了」と表示 次回エクセルファイル「編集」を開くと、コマンドボタンだけである。 また作成された「売上20100923」はマクロがないから開くときに マクロのメッセージは出ない。というようにしたいです。 NO.2のファイルを選択する作業は作業者にしてもらいますが シート1のコマンドボタン1回を押すだけでNO.1~NO.5まで完結させたいです。  NO.3のマクロ処理はマクロの記録でモジュールができています。 このマクロの作成方法と、そのマクロが出来たら その文のどこに作成済みの処理文を入れればいいのかわかりません。 よろしくお願いします。 ここでつまづいています。この後この選択したファイルの全内容が シートの集計に展開されません。 Private Sub CommandButton1_Click() Call 集計 End Sub Sub 集計() FullPath = Application.GetOpenFilename("CSV,*.CSV") If FullPath <> "False" Then Sheets("Sheet1").Select Sheets.Add ActiveSheet.Name = "集計" With ActiveSheet.QueryTables.Add(Connection:="CSV;" & FullPath, Destination:=Range("A1"))   マクロの記録で作成したマクロ   シート"集計"をマクロを引きつかずファイル名売上&システム日付で保存   シート"集計"を削除する

  • エクセルのマクロの操作を記録するについて教えて下さい。

    エクセルのマクロの操作を記録するについて教えて下さい。 マクロ・VBAを勉強しはじめた超初心者です。 毎日、CSVの新しいデータを取得します。 その中で、列の並び変えや文字の太さ、ここは¥マークをつけたい など編集したい事があるのですが、 それを毎日していると時間がかかってしまうので自動化したいので マクロというものを知りました。 実際に、新しいCSVファイルを開いて、 マクロの記憶→上記の編集操作→マクロ記憶終了→保存 とすると、行った動作ではなく、 今現に表示されているCSVの文字データも記憶されてしまいますよね?? 行った動作(列の並び変えや書式変更、関数入力)という行動”だけ”を 自動化するにはどうしたら良いのでしょうか? 毎日取得するCSVデータは 列の項目は一緒ですが、その中で数字や住所が違うデータです。 分かりにくい文章で申し訳ありませんが よろしくお願い致します。