• 締切済み

Exelマクロを自動的に起動する。

エクセル勉強中の者です。 急遽以下のマクロが必要となりましたので 教えて頂けませんでしょうか? ◆目的 マクロの使い方がわからない人にEXELファイルをメールするので 自動的に任意のマクロを起動させたい。 ※ちなみにその相手はエクセルの設定すらいじれない方です・・・ ◆自動実行させたいマクロ こちらのEXELファイルをメールで受け取り、開いたら以下のマクロを 自動的に実行するようにしたい。 ・印刷の余白が全て"0"にマクロで設定。 ・印刷倍率を95%にマクロで設定。 以上です。 私自身、先日マクロの勉強を始めたばかりなので、この問題に 頭を抱えております。どうかご指導お願いいたします。

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>・・・End Subが必要です 余分な Sub や Function が書かれた行があると思いますが・・・ >ファイルを開いた瞬間に自動実行させる場合に追加する文法(式?)・・・ (1)まず、ツール→マクロ→Visual Basic Editor で VBE画面に移動します。 (2)VBE画面で、表示→プロジェクトエクスプローラ でプロジェクトエクスプローラを表示します。 (3)プロジェクトエクスプローラの『ThisWorkbook』をダブルクリックしてコードウインドウを出します。 (4)コードウインドウの上に(General)、(Declarations)と表示された窓があると思います。    (General)の方の三角をクリックして『Workbook』をクリックします。 (5)コードウインドウに次のコードが自動的に書かれます。      Private Sub Workbook_Open()      End Sub (6)この2行の間にBookをOpenした時に行いたいことを書きます。 (7)このWorkbook_OpenがBookを開いた時に実行されます。(他にも方法はありますが) 2行の間に、With~End With を貼り付けてみて下さい。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

どのシートをセットアップしたいか分かりませんので、Sheet1の例と全てのシートをセットアップする例です。どちらかをThisWorkbook に貼り付けます。 ただ、シートのセットアップは保存した時、記憶されていますので、事前に設定しておけば開いた時に再度設定しなおすことはないような気がしますが・・・ また、ブックを開いた時に警告が出たり、相手のセキュリティレベルも考慮する必要があると思います。 ご参考に。(Excel2000です) 'Sheet1をセットアップの例 Private Sub Workbook_Open()   With Worksheets("Sheet1").PageSetup     .LeftMargin = Application.InchesToPoints(0)     .RightMargin = Application.InchesToPoints(0)     .TopMargin = Application.InchesToPoints(0)     .BottomMargin = Application.InchesToPoints(0)     .HeaderMargin = Application.InchesToPoints(0)     .FooterMargin = Application.InchesToPoints(0)     .Zoom = 95   End With End Sub '全てのシートをセットアップの例 Private Sub Workbook_Open()   Dim ws As Worksheet 'シート   For Each ws In Worksheets     With ws.PageSetup       .LeftMargin = Application.InchesToPoints(0)       .RightMargin = Application.InchesToPoints(0)       .TopMargin = Application.InchesToPoints(0)       .BottomMargin = Application.InchesToPoints(0)       .HeaderMargin = Application.InchesToPoints(0)       .FooterMargin = Application.InchesToPoints(0)       .Zoom = 95 '拡大/縮小     End With   Next End Sub

PureWhite
質問者

補足

ご丁寧な回答ありがとうございます。 そのまま利用したのですが、 「コンパイルエラー:End Subが必要です」 とのミニ警告Windowが開き実行されません。 もちろんnishi6さんの作成文にあるEnd Subの部分も きっちり貼り付けました。 バージョンはEXEL2000です。 ちなみに他のマクロを作った場合等で、 ファイルを開いただけでマクロを実行させるには、 どういった記述を追加すれば良いのでしょうか? 私はマクロ初心者なのでExelマクロの機能である 「新しいマクロを記録する」で記憶させてからVisualBasicで手直し・・ という形でしかマクロを扱えません。 お手数ですが、ファイルを開いた瞬間に自動実行させる場合に追加する 文法(式?)を教えて頂けないでしょうか?

関連するQ&A

  • マクロの自動記録でページ設定を行うには

    お世話になっております。 以下の動作がうまく動かず、悩んでいます。 (1)シート名がA~Cの3枚のシートを同時にアクティブにする。 (2)ページ設定で印刷倍率を60%、印刷の用紙のサイズをB4に設定する。 (3)印刷時の用紙の余白をヘッダーやフッターも含めてすべて1にする。 (4)ヘッダー(左側)にファイル名を表示、フッター(右側)に”ページ数&/&総ページ数”と印刷する。 エクセルのマクロの自動記録で、上記のように動くよう、設定を試みたのですが、どうにもうまく動いてくれません。 流石に印刷設定のような細部の調節は、難しいのでしょうか? 何か良策がありましたら、ご教示願います。

  • エクセル起動時、自動的にマクロを実行する

    エクセルファイルを開いたとき、自動的にマクロを 組み込む方法で、「XLSTARTフォルダ」にマクロファイル を置くという方法を最近知りました。 任意のエクセルファイルを開いたときのみ XLSTARTフォルダのマクロファイルを実行する 方法はないのでしょうか? 普通にエクセルを使いたいときでも、マクロが組み込まれて しまい、とても困っています。 例えば、指定のフォルダの中にあるエクセルファイルであれば XLSTARTフォルダのマクロファイルを実行する という、操作ができたりすれば、とてもよいのですが。 何か良い方法があれば、教えていただきたいです。

  • Outlook2007で作業を自動化するマクロ

    Outlook2007を仕事で使っています。 マクロを使って、少しでも仕事を楽にする方法がないかと思っています。 以下の3つの操作をするマクロを教えていただけないでしょうか? (1)添付ファイルをすべて印刷するマクロ 添付ファイル付きのメールが送られてきたとき、添付されている全ファイル(PDFだったりエクセルだったり)を印刷しなければいけない場面がよくあります。 そのときいちいちファイルを一つづつ開いて印刷するのではなく、ワンタッチでもれなく印刷できるようにするにはどうすればよいでしょうか?一つずつ印刷していると時間もかかるうえ、印刷漏れなどがたまにあったりして不便です>< ついでにメール本文そのものも同時に印刷する/しないの二つのバリエーションで教えていただけると嬉しいです! (2)ある文字列を含むメールを受信したとき、デスクトップフォルダの中に自動的にフォルダを作り、その中にメールごと保存するマクロ ある文字列(とりあえず△△△-〇〇〇〇〇〇とします。△は決まった文字、〇は通し番号が入る)をタイトルに含むメールを受信したとします。いつもの作業としては、それを保存するためのフォルダ(フォルダ名を△△△とします。)がデスクトップにあるので、その中に△△△-〇〇〇〇〇〇という名前のフォルダを作り、その中へメールを保存するということをやっています。 これをマクロでうまく自動化できないでしょうか? メール受信とともに自動でこれがなされるのではなく、自分の意思でエイッと思ったときにできる方法がいいです。 ちなみにある文字列を含むメールを仕分ける、という動作はOutlookの自動仕分けでできないことはないんですが、そうすると親玉のメールボックスから別のメールボックス移動してしまうため、検索の際などに不便になってしまいます。なるべく自動仕分けは使いたくないので、マクロでできないかと思っています。 (3)あるtifファイルを、テンプレート的な文章のメールに添付して送信するマクロ あるtifファイル(タイトルを2017-04-23 〇〇〇とします。〇は通し番号が入る)を自動的にメールで送信したいです。その時のメールタイトルを「2017-04-23 〇〇〇」、本文を「いつものtifファイルを送信します。」で送信するようなマクロを組んでもらえないでしょうか? 送信する前にチェックのためにも自分で送信ボタンを押したいため、勝手に送信されないようにしてもらえると嬉しいです! 自分で勉強しろよと言われるかもしれませんが、教えてもらったマクロはきちんと自分で分析して、自分で使えるようにモノにしたいと思ってます! 皆様の知恵をいただければ幸いです!!

  • エクセル タスクスケジューラでマクロ自動実行

    お世話になります。 win7/エクセル2010使用です。 エクセルのThisWorkbook_openでマクロを実行するファイルAを作っています。 ※Auto_Openは記述していません。 ファイルAをタスクスケジューラに設定いたしました。 問題なくマクロが自動実行されて、目的は果たしています。 ただ、不思議な点があります。 このファイルAをダブルクリックして開いても マクロは自動実行されていきます。 このファイルAをコピーして、ファイルBを作り それをダブルクリックで開くと、 ファイルBは、ブックが開いた後に、「セキュリティーの警告」がされて マクロの自動実行ができません。 通常は、「セキュリティーの警告」を出さないために Auto_Openなどでコードを記述すると思うのですが、 なぜ、Auto_Openを記述していないファイルAが自動実行されるのかがわかりません。 タスクスケジューラの設定に何か関係はあるのでしょうか? よろしくお願いします。

  • マクロで自動圧縮(Zip)

    教えて下さい。 あるExcelファイル中のマクロを実行するとそのExcelファイル自体が特定のフォルダに自動的にZipされる。 こんなことってマクロで可能なのでしょうか?? できればソースコードの例を頂けるとありがたいです。 よろしくお願いします。

  • セルに数値が入ったらマクロ起動

    RS-232Cで数値を取り込んでいます。 Exelにて、任意のセルに数値が入ったら自動でマクロを起動する方法が有りませんでしょうか?

  • EXCELでワークシートを開いたらマクロを自動実行したい

    いつもお世話になります。 EXCEL2000を使用しています。 EXCELファイルの中のあるワークシートを開いたときにマクロを自動実行することはできますか? AUTO_OPENだとファイルを開くたびに自動実行されるので、特定のワークシートを開いたときだけマクロを自動実行できるようにしたいのです。 よろしくお願いします。

  • マクロの自動実行

    会社のパソコンで毎朝使うエクセルがあるので、そのエクセルはスタートアップに入れております。 実際にはそのエクセルの中でマクロを実行するのですが、スタートアップではエクセルが立ち上がるだけで、マクロまで自動で実行してくれるものではありません。 エクセルが立ち上がると同時に指定のマクロプログラムが走るように…なーんてことができるのでしょうか?? どなたか教えてください。よろしくおねがいします。

  • Exelの印刷で用紙一杯に印刷する方法を教えてください

    Exelに色々書き込み、これを印刷しようとすると無駄に余白が大きくなってしまい、用紙一杯に印刷されません。印刷のページ設定や余白設定など、微調節してもうまくいきません。 何か用紙一杯に印刷できるよい方法はありますか

  • wordのマクロを自動実行する方法

    excelの場合は、下記でファイルを開くと同時にマクロが自動実行されます。  Sub Auto_Open()   自動実行したい処理  End Sub wordの場合は、上記では自動実行出来ません。 wordのマクロを自動実行する方法を教えて下さい。 宜しく、お願いします。

専門家に質問してみよう