OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

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

  • すぐに回答を!
  • 質問No.203508
  • 閲覧数95
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 30% (3/10)

エクセル勉強中の者です。
急遽以下のマクロが必要となりましたので
教えて頂けませんでしょうか?

◆目的
マクロの使い方がわからない人にEXELファイルをメールするので
自動的に任意のマクロを起動させたい。
※ちなみにその相手はエクセルの設定すらいじれない方です・・・

◆自動実行させたいマクロ
こちらのEXELファイルをメールで受け取り、開いたら以下のマクロを
自動的に実行するようにしたい。

・印刷の余白が全て"0"にマクロで設定。
・印刷倍率を95%にマクロで設定。

以上です。

私自身、先日マクロの勉強を始めたばかりなので、この問題に
頭を抱えております。どうかご指導お願いいたします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

どのシートをセットアップしたいか分かりませんので、Sheet1の例と全てのシートをセットアップする例です。どちらかをThisWorkbook に貼り付けます。 ただ、シートのセットアップは保存した時、記憶されていますので、事前に設定しておけば開いた時に再度設定しなおすことはないような気がしますが・・・ また、ブックを開いた時に警告が出たり、相手のセキュリティレベルも考慮する必要があると思います。  ...続きを読む
どのシートをセットアップしたいか分かりませんので、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

お礼率 30% (3/10)

ご丁寧な回答ありがとうございます。
そのまま利用したのですが、
「コンパイルエラー:End Subが必要です」
とのミニ警告Windowが開き実行されません。

もちろんnishi6さんの作成文にあるEnd Subの部分も
きっちり貼り付けました。
バージョンはEXEL2000です。

ちなみに他のマクロを作った場合等で、
ファイルを開いただけでマクロを実行させるには、
どういった記述を追加すれば良いのでしょうか?

私はマクロ初心者なのでExelマクロの機能である
「新しいマクロを記録する」で記憶させてからVisualBasicで手直し・・
という形でしかマクロを扱えません。

お手数ですが、ファイルを開いた瞬間に自動実行させる場合に追加する
文法(式?)を教えて頂けないでしょうか?
投稿日時 - 2002-01-23 01:44:53

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

>・・・End Subが必要です 余分な Sub や Function が書かれた行があると思いますが・・・ >ファイルを開いた瞬間に自動実行させる場合に追加する文法(式?)・・・ (1)まず、ツール→マクロ→Visual Basic Editor で VBE画面に移動します。 (2)VBE画面で、表示→プロジェクトエクスプローラ でプロジェクトエクスプローラを表示します。 (3)プロジェク ...続きを読む
>・・・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 を貼り付けてみて下さい。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ