• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロの保存先(マクロ初心者))

エクセルのマクロの使い方について

eden3616の回答

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.7

>Sub Auto_Open() >Range("A6:D9").ClearContents >End Sub >これだと開いてきたSheetが対象になってしまう事に気付いたので >質問させていただきました。 その通りです。 ご呈示のコードではRangeの値を削除しているだけですので、 シートの指定が省略されています。 エクセルVBAではシートの指定を省略した場合に、 アクティブ(選択中)なシートが対象となります。 Worksheets("シート名").Range ~~  →シート名を指定してセル範囲を指定 Workbooks("ブック名").Worksheets("シート名").Range ~~  →ブックとシート名を指定してセル範囲を指定 など、ほかのブックやシートがある場合に意図しない動作を する可能性があるのであれば適切に支持してあげる必要があります。 >自動マクロは下の3行(正確には1行)です。 >他にも3行程度の自動マクロも試しているのですが、 >危ないのでTESTのみで止めています。 >更には開いている .xlsm Bookにマクロにウッカリ感染?しないか >等々心配になってきています。 ご自身で作られたものなので、ブラックボックス化しないように コードのコピペだけではなくコードの意味を調べ、 作成したマクロの動作を把握して使用することが大切です。 VBAにはマクロの挙動を1行1行確認する方法として「ステップアップ実行」が ありますので、活用してみてください。 http://plus1excel.web.fc2.com/learning/l301/t405.html

akira0723
質問者

お礼

ありがとうございました。 上記非常に参考になります。 少しずつマクロに慣れていこうと思います。 また宜しくお願い致します。

akira0723
質問者

補足

>Workbooks("ブック名").Worksheets("シート名").Range ~~ ありがとうございます。 先ずは上記から始めてみて、マクロに慣れたいと思います。 助かりました。

関連するQ&A

  • エクセルのマクロを教えてください。(初心者です)その2

    エクセルで期間限定で使えるソフトを作ろうと思っています。 簡単に申し上げると、 使用期限を設けて、期限の日がくると、 エクセルのセルに 「有効期限が来ましたので、再度お申し込みください。」 という文章が表示され(ポップアップでなくていいです)、 このシート以外は片っ端からシートが削除され、 上書き保存され、これ以上使えないというものを作りたいのです。 ツールバーのマクロの記録を利用した 極度に簡単なマクロしかやったことがないので、 以下の点を中心にマクロの作成の仕方を お教え頂けますと幸甚です。 (1)有効期限の日付を入力しておいて、その日が来るとマクロが実行される方法 TODAY関数と有効期限の引き算でゼロになったら実行でしょうか。 該当セルの数値がゼロになったらマクロが実行されるという方法を お教え頂けませんか。 ちなみに、有効期限の日付は、非表示にしてシートの保護で開けないようにしておこうと思います。 (2)有効期限が来たら自動的にマクロが実行される方法 上記(1)の方法でやれば、ファイルを開いたとたんマクロが実行されるのでしょうか。 (3)マクロでシートを削除する方法 これは、通常のマクロの記録でやろうとすると、 シートを削除すると「やり直し」でもシートを復活させられないので、 シートがなくなっちゃった状態でしか保存できない気がするのですが・・・。 (4)上書き保存するマクロ 上記(3)と同様、マクロの記録では できないので、これ以外のやり方をお教え頂けませんか。 (5)シートを表示させるマクロ マクロを実行した時点で「有効期限が来ました・・」と入力された シートを表示させたいのです。 マクロで表示させる方法をお教え頂けますでしょうか。 (6)マクロを見れないようにする方法 マクロを自由自在に操れる人が 私の作ろうとするエクセルファイルを手にしたら、 「有効期限になる前にマクロを削除しちゃえ」と やられないかが心配です。 うまい対処方法ございませんでしょうか。 (7)パソコンの日付の操作の対処 上記の(6)と絡むのですが、 パソコンの日付とプロパティーから パソコンの日付をいじって 有効期限より前の日付にしたら ずっと使われてしまうのではないか心配です。 うまい対処方法ございませんでしょうか。 ずぶの素人の私にどなたか この方法をご教示頂けませんでしょうか。

  • エクセルVBA初心者です。マクロを組んでください。

    エクセルVBA初心者です。組んで欲しいマクロがあります。 Sheet 1に13桁を入力するセル sheet 2に検索したいデータ 手順としては、 Sheet 1のセルにデータを入力 →13桁以上でマクロが開始(されるように設定します) →Sheet 1のセルと同じ数列をSheet 2の列Aから検索 →該当のセルを含む行をSheet 3にコピー →Sheet 1の入力セルの少し下にもコピー (確認用) というのを一回一回ずつやりたいです。 できれば作業中マウスやキーボードを触りたくないので、そのために、マクロの終わわりには入力セル内の消去、マクロの始まりには確認用でコピーした行の削除もつけて下さい。 検索するSheet 2には同じデータが含まれているので、出来ればひとつずつSheet 3にコピーしたいので組み込んで頂けると幸いです。 よろしくお願いいたします。

  • エクセルのマクロについて教えてください

    作業が面倒だし、間違いもよく発生するので、 下の条件のマクロをどなたか教えて頂けませんか? 宜しくお願い致します。 社内のサーバーにエクセルファイル名、AからZまであるとします。 各AからZにそれぞれ同じシート名「集計」があるとします。 そのシート内にデータが色々あるとします。 ある決まったセルだけを削除するのではなく、セルの色だけで判断してデータを削除したいのです。 例えば、赤色のセルになっている部分だけを対象に 入力されている数字を消したいのです(行削除ではなく、単純にデリートです)。 上記をマクロで実行する方法はないでしょうか。 マクロ初心者なので、プログラム言語の下に簡単な説明を頂けると助かります。 どなたか詳しい方がいらっしゃいましたら、宜しくお願い致します。

  • EXCELでマクロを初めて実行してみたんですがぁ・・・・

    初めてマクロというものをやってみました。 ただ、動作を記憶させただけです。プログラムは全然知りません。 sheet1の株価4本値と日付を1日だけ繰り上げる 単純な動きです。一番最後のセルにその日の 日付と4本値と入れて、マクロを実行させて、1日だけ繰り上げる 作業です。 それを、Sheet2が「=Sheet1!B2」このような形で参照するように してあるのですが、実行させると、 Sheet2B2のセルが#REF!とかなんとか表示されて B3からしか正しく表示されません。 以後同じことを繰り返すと、どんどん1つずつセルがエラーして 正しく表示されるセルが下がりながら、減っていってしまいます??? なぜなんでしょうか?? また回避策というか、正しい方法はありますでしょうか?? 何卒、初めてなので、わかりやすくお教えいただけると ありがたいです。 よろしくお願いを致します。

  • Excelでのマクロ作成について

    次のようなマクロをExcelで作りたいのですが上手くできませんでした。みなさんのお力をお借りしたいと思い質問しました。 [質問内容]       A        B        C 1 20030303120000 2 3 20030406120000 4 5 20030512120000 6 7 このようなシートで、セルA1の内容を「03/03/2003」に変更して行2を削除する。(セルの内容ではなく行そのものを削除する。) この作業を繰り返して次のようなシートにする。      A        B        C 1 03/03/2003 2 04/06/2003 3 05/12/2003 4 5 ひとつのマクロを繰り返し実行するのでも構いませんが、数が多いのでできれば100行程度を一度に実行できれば助かります。 よろしくお願いします。

  • エクセルマクロのことです

    通常使っていたマクロを間違えて消してしまい、その上再構築できなくて困っています。 こんなマクロだったですが。 ブック内に複数のシートが入っています。新しくSheetを追加してA2セル(他のセルの時もあります)をアクティブにします。 Alt+F8→実行でA2セルから下へ、そのブック内の全ての「シート名」が書き出されるというマクロだったのです。 マクロ初心者です、どなたかアドバイスをお願いします。

  • Excelのマクロ初心者です

    Excelのマクロ初心者です 同じBookでセルA1に”1”が入力されているSheetのみ全て印刷する マクロを教えてください!

  • Excelでマクロ設定したが反映されない(初心者です)

    Excelでマクロを設定したのですが、なぜかきちんと反映されません。 以下、主な作業(実際の作業とは少し違いますがだいたい主な作業)を記載してみました。なぜ反映されないのか分からないので、もしお分かりになる方がいらしたら教えてください。必要な情報が足りない場合は、付け足します!マクロ初心者、というか、Excelも関数をたまに使う程度なので、基本から間違えてたりするかもしれませんがお願いいたします。 ※一連の作業がまずワークシートを1枚増やして、その後、必要なデータを貼り付け、さらに作業にうつります。ということで、キリのいいところで作業を2つに分けています。 【STEP1】 新しいマクロの記録 ok 挿入 ワークシート Sheet4タブを a と変更 Sheet1タブを b と変更 Sheet2タブを c と変更 Sheet3タブを d と変更 記録終了 【STEP2】 新しいマクロの記録 ok タブabcdを選択 作業グループの状態で、 全体の文字サイズを10に変更 行を3行挿入 A1セルの文字サイズを16に変更 4行目を選択し、文字位置を中央揃え A4・B4・C4・D4・E4・F4のセル色を青に変更 シートaのA1にaと入力 シートbのA1にbと入力 シートcのA1にcと入力 シートdのA1にdと入力 シートaとシートcとシートdを選択 作業グループの状態で、 B列・C列を選択 桁区切りスタイルに変更 シートcを選択 C列・D列を選択 桁区切りスタイルに変更 G4セルを青に塗りつぶし 記録終了 保存 (Book1.xls) 新規作成 マクロ Book1.xls!Macro1 実行 ★シートabcdにそれぞれ必要なデータを貼り付ける。 マクロ Book1.xls!Macro2 実行 ⇒シートdのみにマクロで記録させたものが反映されている。 他のシートは部分的に反映されたりしている。

  • エクセル、マクロで「末尾を1文字削除」したいのですが

    またまた、お願いします。 エクセル初心者向けの入力支援としてマクロを使っています。 【やりたい事】 セルを選択しマクロを実行すると「該当セルの末尾1文字が削除される」というのは可能でしょうか? カーソルを入れてBSすれば済むだけの事ですが、諸般の事情で「セル選択+マクロ実行」の動作にしたいのです。 どなたかよろしくお願いします(ponta_024)

  • エクセル VBA初心者です

    エクセルでマクロを設定したいのですが、まだ初心者なのでVBAはほとんど書けません。 たとえば、A1セルの値をコピーして、一番最後のシートのA1セルに貼り付けるという作業を、始めのシートから最後から2番目のシートまで実行したいと思います。最後のシートにはA1からA2、A3、A4・・・のようにどんどん下に貼り付けていきたいのです。特にシートの名前を指定するのではなく、一番左から、最後から2番目までのシートまで、シートの数に関わらず実行したいのですが。。。 いろいろ本を見て調べたのですが、シートを指定して移動するのとかは書いてあったのですが、こういう場合はどうすればよいのでしょうか、よろしくお願いします。