エクセルマクロの構文の実行方法と注意点

このQ&Aのポイント
  • エクセルでマクロを活用するための構文について学習中の初心者です。
  • ネット上には様々な構文が公開されていますが、ファイル名とブック名とシート名を変更するだけで『シートを一つのブックにまとめて集計する』ことが可能です。
  • 実行する際はエクセルを開いた状態で、開発タブをクリックして保存してある構文を実行するだけで簡単に行えます。
回答を見る
  • ベストアンサー

エクセルマクロの構文の実行の仕方について

これからエクセルのマクロを学習しようとしている者です。教本等購入して一度目を通しただけの状態ですが、読んでいく中でいろいろ疑問が出てきました。例えばネット上には様々な構文が公開されていますが、実際にこれを活用しようと思ったときにエディターにコピペしてファイル名とブック名とシート名を個別に変更してやる、という作業だけで『シートを一つのブックにまとめて集計する』ということが可能になるんでしょうか?また実行するときはエクセルを開いた状態ならば、新規作成の画面から開発タブをクリックし、保存してある構文を実行するだけで済むんでしょうか? 初心者なもので基礎的なことがわかっていません。宜しく願いいたします。

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

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

WEBに載っているコードなら、コピペして、解説書に載っているコードなら手打ちして(CDROMにソースが在ったりする場合はそれを読みこみコピペして)勉強することになります。 >ブック名とシート名を個別に変更してやる 最低その分を修正は必要でしょう。 しかしその他の部分も修正しなければならない箇所はたくさんある場合があり 、それが初めはどこかわからず、苦労するわけです。 それができるるようなら、相当上達しているわけです。 それがどこかは、あらかじめ説明したり、列挙することは(多すぎて)できません。コード内のコメントや前後の解説に注が記してあるものもあるが、作成者に(普通は専門家や上級者)とっては当たり前で、記載してないものもたくさんある。経験では、相当割合で、コピペしただけでは動かない。VBAのベテランにとって当たり前のことが、初心者には意識されてないので、学習を打ち切らざるを得ないことが多い。独学者の悲しい定めですが。相当期間学習してからわかる事項もある。そもそも基礎概念さえもわってない場合も多いはず。コピペして修正して、やってみる(実行)ことの積み重ねです。初めから心配して、一般的要領をまず知ってやろうというのは無理があると思う。まず躓いて、そこで考えることでしょう。躓いたら判るものでは決してないが。 事前にこまめにVBAの本を読み、エラーが起こればWEBを調べる、たまには質問コーナーに質問するなどしかないはず。 VBAの経験を積むと、ちょっぴり類推力がついて、実行して止まっても、こう修正すれはという路が見えてくる場合もある。そこで修正してやってみる。 しかし本格的に学習(VBAの先輩の鍛えや講習や学校で指導を受けないと)しないと、経験域は独学では広がらず(独りよがり)、限界があるように思う。

aba0716
質問者

お礼

参考になりました。ありがとうございました。

関連するQ&A

  • エクセル2007 マクロ シート 移動

    マクロ学習中のものです。 エクセル2007 マクロの複数のブックのシートをひとつのブックにまとめたいです。 ふつうにコピペすると、コピー先ではマクロが走りません、 どのようにすればよいか、アドバイスください!! よろしくおねがいします。

  • Excelのシート→ブック

    Excelのシート→ブック Excelに複数のシートがある状態です。 そのシートを個別のファイル名=シート名で一発で個別のブックにする方法はありますか?

  • エクセルのブック間のコピペのマクロ構文を教えて下さい

    はじめまして。 マクロは初心者なので、ご教授いただけるとありがたいです。 エクセルのワークブック1のシート1をコピーして、ワークブックAのシートaにペーストをする構文をお願いします。 マクロの記録で作って実行してみましたが、コピーするファイルが開いているときはうまくいって、開いていないとないとうまくいきませんでした。 コピーするファイルが開いていない状態でもコピーできる方法はないのでしょうか… よろしくお願いいたします。

  • エクセルマクロをバックグラウンドで実行しているように見せたい

    エクセルマクロでシートやブックを複数使い、 コピーやペースト、削除を何度もします。 その際に、他のシートやブックを何度も選択するので、 画面が絶え間なく動き、見ていることが出来ません。 こういったとき、どのようにして皆さんは対処しているのですか? ひょっとして、どこかのシートを開いたままで、 バックグラウンドで実行しているように見せることって出来るのでしょうか?

  • エクセル-別のbookで同様のマクロ実行

    エクセル-別のbookで同様のマクロ実行 最初あるBook1に入っているmacro1はそのbook1のsheet1を処理するように作成しました。 次にBook1を開いたまま、Book2を開きそのsheet1に対してmacro1と同等の機能を実行したい場合は通常どうするのでしょうか。 (1) Book2にBook1のマクロをコピー (2) book2のマクロを開き、表示されるBOOK1 macro1を実行する。 (2) 場合でもうまくいくのでしょうか。Sheet1に対してやりたいことの論理は同じとします。試してみたらといわれそうですが、まず識者の説明をお聞きしたいのです。

  • Excel マクロ SQL実行について

    いつもお世話になっております。 現在、Excel1997と2007でマクロを作成しております。 使用している環境は様々でOSは2000~XPまでです。 っで質問なんですが、「マクロ」というシートと「データ」というシートがあったとして、「マクロ」シートにはボタンがあり、ボタンを押すとマクロが実行します。 マクロが実行されると「データ」というシートにあるデータをマクロ内のSQLで集計して、新しい「出力」というシートに吐き出します。 現在マクロ内のSQLはDAOライブラリを使用しています。EXCELマクロ内でSQLを使用する場合にDAOやADO等のライブラリを使用せずにSQLを実行することは可能でしょうか?

  • エクセルからACCESSへマクロでワークシート変換していますが・・・

    ACCESSで作ったクエリを一度エクセルにエクスポート(マクロを使ってワークシート変換)後、エクスポート先のシートとは別シート(同一ブック内)で集計し、集計結果をACCESSへインポート(マクロを使ってワークシート変換)させたいのですが、前回の集計結果がインポートされてしまい、新しい集計結果が反映されません。 一度エクセルのブックを開けば新しい集計結果が取り込めます。 何故でしょうか? またブックを開かずに最新のエクセルの集計結果をACCESSに反映させる方法はありますでしょうか?

  • excelの串刺し集計マクロ

    現在各所から送られてくる同一フォーマット書類(ファイル名は別,シート1枚,名称:sheet1)約150ファイルを 集計ブックと同じフォルダに保存して集計ブックの集計シートで串集計するマクロコードを見つけて便利に使用しております。 が、このたび各所から送られてくる同一フォーマット書類がシート二枚(名称:sheet1,sheet2)に渡る事になりまして、 集計ブックの集計シートもそれぞれ用に2枚必要になり、 1枚目の「集計1シート」には「sheet1」だけを集計し、二枚目の「集計2シート」には「sheet2」だけを集計するのはどうすればよいでしょうか? また、今回追加になったシートは計算シートで、計算式が埋められており、「マクロの記録」なんてのでやってはみましたが、 埋められている計算式が反映されるだけで計算結果が反映されませんでした。 合わせてご教授願えると大変助かります。 老人にお知恵をお貸しください。よろしくお願いいたします。

  • エクセル マクロ

    エクセルマクロで、複数ファイルにある全シートの情報を、別ファイルの1シートに転記したいのですが、なかなか上手く行きません。(ほぼ初心者です。) 詳細は↓です。どなたかご教授の程よろしくお願いいたします。 【やりたいこと】 同一フォルダ内にある約60個のファイルの、全てのシート内の情報を別の集計用ファイルに転記する。 (1) ファイル毎にばらばらなシート名&シート数で、これら全てのデータを集計用ファイルに転記するには?(シート数は1ファイルあたり1シートから最大13シート) (2) 以前に似たような作業をした時は、ファイル名をいちいち集計用ファイルにコピペして読み込ませたが、こうした手間を掛けずに一括処理するには? ※転記作業自体は「マクロの記憶」機能で書き出すので、それ以外の、特に始まりと終わりの部分を教えて下さい。 ※転記内容自体はあまり複雑ではなく、集計用ファイルに1シート1行として転記し、ズラッと下に120行書き込むつもりです。 説明が分かりづらい部分があればご指摘ください。よろしくお願いいたします。

  • エクセルマクロの構文

    エクセルマクロに関してご教示いただきたく存じます。 下記の手順を1つのマクロで実行したい場合、どのような構文を書けば実現できますでしょうか? 前提: ・エクセル中、シート(1)、シート(2)を準備。 ・シート(1)には毎日1日分のデータを入力(例えば、1行目の経費項目、金額、経費支払者 の3カラムヘッダーの下に、2行目から1日分のレコードを入力していく) ・シート(2)には毎日の日別データを累積していく(例えば、シート(1)に1日目で10レコード、2日目で15レコード、3日目で20レコードの場合、3日目終了時に計45レコードにしたい。1行目の経費項目、金額、経費支払者 の3カラムヘッダーはシート(1)と同様) マクロ実行: ・シート(1)に1日目のデータ入力(10レコード)が終わった段階で、ボタンを押し、下記マクロを実行  (1)シート(1)の10レコード(A2:C11)を、シート(2)のA2:C11にコピー  (2)シート(1)の10レコード(A2:C11)を、削除(データクリア) ・シート(1)に2日目のデータ入力(15レコード)が終わった段階で、上記と同じボタンを押し、下記のマクロを実行  (1)シート(1)の15レコード(A2:C16)を、シート(2)のA12:C26にコピー(シート(2)において1日目のデータの次に累積させていく)  (2)シート(1)の15レコード(A2:C16)を、削除(データクリア) ・シート(1)に3日目のデータ入力(20レコード)が終わった段階で、上記と同じボタンを押し、下記のマクロを実行  (1)シート(1)の20レコード(A2:C21)を、シート(2)のA27:C46にコピー(シート(2)において1日目のデータの次に累積させていく)  (2)シート(1)の20レコード(A2:C21)を、削除(データクリア) ・4日目以降、同じボタンでマクロを実行する度に、シート(1)のデータがシート(2)の47行目以降、空白なく追加されていく 以上、皆様のお知恵をお貸しください。