- 締切済み
Exelマクロを自動的に起動する。
エクセル勉強中の者です。 急遽以下のマクロが必要となりましたので 教えて頂けませんでしょうか? ◆目的 マクロの使い方がわからない人にEXELファイルをメールするので 自動的に任意のマクロを起動させたい。 ※ちなみにその相手はエクセルの設定すらいじれない方です・・・ ◆自動実行させたいマクロ こちらのEXELファイルをメールで受け取り、開いたら以下のマクロを 自動的に実行するようにしたい。 ・印刷の余白が全て"0"にマクロで設定。 ・印刷倍率を95%にマクロで設定。 以上です。 私自身、先日マクロの勉強を始めたばかりなので、この問題に 頭を抱えております。どうかご指導お願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nishi6
- ベストアンサー率67% (869/1280)
>・・・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)
どのシートをセットアップしたいか分かりませんので、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
補足
ご丁寧な回答ありがとうございます。 そのまま利用したのですが、 「コンパイルエラー:End Subが必要です」 とのミニ警告Windowが開き実行されません。 もちろんnishi6さんの作成文にあるEnd Subの部分も きっちり貼り付けました。 バージョンはEXEL2000です。 ちなみに他のマクロを作った場合等で、 ファイルを開いただけでマクロを実行させるには、 どういった記述を追加すれば良いのでしょうか? 私はマクロ初心者なのでExelマクロの機能である 「新しいマクロを記録する」で記憶させてからVisualBasicで手直し・・ という形でしかマクロを扱えません。 お手数ですが、ファイルを開いた瞬間に自動実行させる場合に追加する 文法(式?)を教えて頂けないでしょうか?