• ベストアンサー

EXCEL VBA起動時の処理

ExcelVBAを使用しています。 あるワークシート(test.xls)を起動させたとき、 最初に初期化処理(CELLに簡単な設定)を させたいのですが、その処理をなんというマクロ(イベント)に記述すれば良いか教えてください。

  • ssi77
  • お礼率76% (32/42)

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 ThisWorkbookモジュールのWorkbook_Openイベントプロシージャか、 標準モジュールを挿入して、そこにAuto_Openという名前でSubプロシージャを作成して下さい。

ssi77
質問者

お礼

返答ありがとうございました。 しっかりと、機能しました!!

その他の回答 (1)

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

#1のご回答にある様に ツール-マクロ-VBEの画面の MicrosoftExcelObjectの「ThisWorkbook」をダブルクリックして出てくる画面に Private Sub Workbook_Open() MsgBox "open!" End Sub を貼りつけて(注)、名前をつけて保存する。(オープン1.xls) そしてオープン1.xlsを開くと、OPEN!と出ます。 実際はMsgBox "open!"の部分にセルの値の初期化の コード等を書く。 (注)VBE画面で、GeneralをWorkbookにDeclarationsをWorkbook_Openをクリックして選ぶ必要はない。 コピー貼りつけや、入力でも可。 しかしSheet1やModule1をダブルクリックして出てくる 画面の中にコードを書いてもだめですので、注意。

ssi77
質問者

お礼

丁寧な解説ほんとにありがとうございました。 しっかり動き始めました!

関連するQ&A

  • エクセルの起動

    ExcelXPを利用しています。 マクロの勉強を始めたのですが、それ以降エクセルを起動すると、personal.xlsというファイルが最初に開いてくるようになってしまいました。 それを初期に戻すにはどうすればよいでしょうか? personal.xlsというのはシートが1枚しかなく不便なんです。

  • Excelマクロの配布

    失礼いたします。 ExcelVBA初心者で、環境はExcel 2003です。 現在使用しているスケジュール表ワークシート(マクロあり)に、新マクロを追加したいと考えております。 新マクロの内容は、スケジュール表ワークシートのChangeイベントによって実行されるものです。 自分のスケジュール表の場合、ワークシートのコードにChangeイベントを追加・新マクロの記述をすればよいだけなのですが、 同僚にこの新マクロを配布しなければなりません。 なるべく同僚の手間を減らそうと考え、関係のありそうなアドインについて調べたのですが、 ワークシートのコードを変更せず(Changeイベントを追加せず)に、アドインを呼び出す方法が分かりません。 どなたか、詳しい方教えて頂けないでしょうか? よろしくお願いいたします。

  • 【VBA】他のExcelを起動し、呼び出し元のExcelを閉じる

    こんにちは。VBA初心者で、現在勉強している最中のものです。 宜しくお願い致します。 現在、TEST1.xlsというブックからTEST2.xls(マクロ有)を 起動させたいと思っております。 ただ、TEST2.xlsが起動したのち、TEST1.xlsは閉じさせたいのです。 TEST1.xlsは、TEST2.xlsのキック用とし、 TEST1.xlsを実行させると、あたかも、TEST2.xlsを起動させたように したいと思っています。 色々試してみたのですが、TEST2.xlsのマクロが無効になったり、 TEST1.xlsが閉じなかったりと試行錯誤しております。 どなたか、ご指南いただけたらと思っております。 どうぞ、宜しくお願い致しますm(_ _)m

  • 【VBA】マクロのルールについての文章 解説

    マクロのルールについて記載された一文について、次の内容を噛み砕いて教えていただけますか。 さっぱりわかりません。。。 「イベントを利用するマクロはオブジェクトのモジュールに記述する」 ワークシートをアクティブにすると、アクティブになったワークシートでActivateイベントが発生します。このイベントを利用して、ワークシートが切り替わった時自動的に起動するようなマクロは、Worksheetオブジェクトのモジュールに記述しなければなりません。

  • Excel VBAでの初期設定

    Excel VBA 初心者です。Excelは2013です。VBAでBookを開いたときにあるシートの初期設定をしたいと考えています。Activateイベントを使おうと思いましたがイベントが発生しないことがあるため質問しています。 例として以下のようなコードを記述したとき、sheet1以外を開いて保存している場合にはActivateイベントは発生しますが、sheet1を開いて保存している場合にはイベントが発生しないため初期設定の処理ができませんでした。 対応方法をお分かりの方ご教授いただけないでしょうか。 ============================= '"以下をThisWorkbook"に記述 Private Sub Workbook_Open() '②Worksheets("sheet2").Activate も入れれば Activateイベントは発生する Worksheets("sheet1").Activate '①もともと sheet1がActiveで保存されていた場合、Activateイベントは発生しなかった End Sub ============================= '"以下をsheet1"に記述 Private Sub Worksheet_Activate() '初期設定処理 MsgBox "sheet1の初期設定をしました" End Sub ============================= 宜しくお願いします。

  • Excel VBAマクロを Bookオープンのとき起動したい

    Excel VBAマクロを書いています。 ExcelBookを開いたとき、自動的にマクロを起動したいのですが、 その方法を教えてください。 また、特定のCellだけを対象にした「内容変化」の イベント処理関数を作成する方法も、教えてください。 よろしくお願いします。

  • excelで最初に開いたファイル名称を覚えておく様な処理は可能ですか?

    excelで最初に開いたファイル名称を覚えておく様な処理は可能ですか? 1.最初の処理 (1)A.xlsのファイルを開く (2)マクロ:2010.xlsのファイルを開く (3)マクロ:チェックのシートをA.xlsの明細のシートの前に追加 (4)マクロ:チェックのシート名称をコピーした日付と時間のシート名に変更 (5)マクロ:2010.xlsのファイルをディスクトップ上から削除 2.後から追加する処理 (6)B.xlsのファイルを開く (B.xlsは、A.xlsとは異なるフォルダを作成し、A.xlsの特定のセルの中身の名称でファイル名保存されます。名前が異なるだけでマクロの中身はA.xlsと同じ) (7)マクロ:2010.xlsのファイルを開く (8)マクロ:チェックのシートをB.xlsの明細のシートの前に追加 (9)マクロ:チェックのシート名称をコピーした日付と時間のシート名に変更 (10)マクロ:2010.xlsのファイルをディスクトップ上から削除 上記を対応する為に下記の様なマクロ((6)(7)の部分を抜粋)を設定しています。 '2010.xlsのファイルを開く(2010.xlsのファイルは適宜、ディスクトップにコピーされます) Workbooks.Open FileName:="C:\Documents and Settings\ID\デスクトップ\2010.xls" 'チェックのシートを現在のブックの明細の前にコピーする。 Windows("2010.xls").Activate Sheets("チェック").Copy before:=Workbooks(1).Sheets("明細") 単独でA.xlsやB.xlsのファイルが開かれている場合には、 上記の対応で問題ないのですが、A.xls、B.xls以外のexcelファイルが開かれていると、 実行時エラーが出てしまいます。 Workbooks(1)の部分で最初に開いたexcelのファイル名称を指定しているのが 影響しているのはわかるのですが、ここの処理をなんとかしたいというおもいです。 つまり、複数のexcelファイルが開かれていて、A.xlsやB.xlsのファイルを後から開いても エラーがでない様にするには、どの様な処理にしたらよいのか教えて頂きたく。 マクロを実行したexcelのファイル名を覚えておいて、その名前が(1)に置き換わる 様な処理が望まれる処理です。

  • VBからEXCELを起動する

    VBよりExcelを起動するプログラムで困っています。 1.VBよりGetObject関数でTest.xlsを開く 2.Test.xls内のAuto_Openマクロでパラメータファイルをよみ、そこに指定されているエクセルファイルを新しいブックでを開く ということをしたいのですが(「マクロを有効にする」のダイアログは表示されてもかまわないです)、何故かTest.xlsが開いたと思ったらすぐ閉じてしまいます(Excel自体は終了してないですべてのワークシートが閉じた状態)。 Auto_Openマクロは走ってるようなのですが、ついでにCloseマクロも走ってしまいます。 ちなみにTest.xlsを単体で動かしたときは問題なく動くのです・・・。 以前はVB4+Excel95の環境でAPI(CreateProcess)を使用し同作業を行っていたのですが、そのAPIが長いファイル名のスペース(OFFICEがある「Program File」のスペース)を認識しないそうで、この方法が使えないということでGetObjectを使用してみたのですが・・・。 何か根本的な間違いをしているのか、それともコードにエラーがあるのかさっぱりわからずお手上げです。 うまく疑問点を説明できているか不安なんですが、わかる方、どうかご指導願います。 よろしくお願いします。 ---------------------------------------- OSは、Windows 2000 アプリケーションは、Excel 2000 です ----------------------------------------

  • excel vba

    テーブル情報に基づきシートをコピーするVBAマクロを記述したい。 ExcelのBook111のSheet1に次のような データが入っています。 (1、2)セルにn=3という数字が入っているものとします。 その数値に合わせて、この場合は3なので Sub Sample01() Workbooks("Book3.xls").Worksheets("booksheet3").Copy After:=Workbooks("Book111.xls").Sheet(1) End Sub のようなつまり、booksheet3なるシートをBook111(固定なBOOK)にコピーしようとしています。 このようなことをVBAで書くにはどうすればいいのでしょうか。 ただしBook名とシート名はあくまでデータの値にもとづいたデータをもってくることになります。 要するに間接参照したデータに基づき処理するのをどのように記述するかという質問です。 A列 B列 1 回数 n=3 2     3     4 Book1.xls book1sheet ←n=1 5 Book2.xls book2sheet ←n=2 6 Book3.xls book3sheet ←n=3 7 Book4.xls book4sheet 8 Book5.xls book5sheet 9 Book6.xls book6sheet ←n=6 10 Abc,xls Defsheet ←n=7

  • エクセル:マクロ処理

    エクセルファイルにマクロを入れておき、あるボタンを押したらそのマクロが1回だけ実行される。 というようにしたい。 (質問)   ボタンは、どう作るか。コマンドで作るのか。   ボタン処理のところのマクロ記述はどんな感じのコードか。   このファイルを開いたときマクロを有効とするかは有効にするでいいんですよね。 (参考) ワークシート   ボタン1を表示しておく   マクロ   ボタン処理   実行処理 マクロend