- ベストアンサー
起動時のマクロイベント
お世話になります。 現在VBAである処理を行なおうとしています。 手順1.ブックを開いた時点で任意の場所に格納されているフォルダ名をボタン名にセットし表示 手順2.フォルダ名が表示されたボタンをクリックすると新しいブックが開き、クリックしたボタン名に相当するフォルダの中身のファイル名をボタン名にセットする。 手順3.ファイル名が表示されたボタンをクリックするとファイルが表示される。 としています。 それぞれのブック(Sheet1)のなかに Private Sub Workbook_Open() (処理を記述) End Sub をつくり、手順1.手順2.ともにフォルダ名やファイル名を取得する処理を記述しているのですが、ブックを起動した時点では実行されません。 ブックの起動後に自らマクロボタンをクリックさせなければならない状態です。 マクロを実行しなければエラーになり、 マクロを実行すれば思うような結果が返ってきます。 処理を”ThisWorkbook”のなかに記述しても変わりませんでしたし、マクロが有効になっていないのかと思い、セキュリティー設定を確認したところ「中」になっていたので大丈夫であるとは思う出すけど・・・。 問題点を解決するにはどうしたらよいのでしょうか。 コマンドの誤りがあるのでしょうか? 何か設定が必要なのでしょうか? 起動時にマクロボタンを自動でクリックするようなコマンドが必要なのでしょうか? 色々考えているのですが、解決に至りません。 どなたかご教授宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>それぞれのブック(Sheet1)のなかに 「標準モジュール」に設定する自動実行イベントは「Auto_Open()」になります。 >処理を”ThisWorkbook”のなかに この場合、 「Private Sub Workbook_Open()」イベントになります。 ここに記述すると「Auto_Open()」よりも優先して実行されます。 それで実行されていないのであれば、ソースを見ないと何とも言えません。 http://park11.wakwak.com/~miko/Excel_Note/14-02_macro.htm#14-02-26
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >(処理を記述) の部分が分らなければ、本当は話が見えてこないです。 これ自体は、 >起動時にマクロボタンを自動でクリックするようなコマンドが必要なのでしょうか? 例: Worksheets("Sheet1").CommandButton1.Value = True こんな風にすればよいけれど、その作られたマクロの内容は、かなり複雑なことをされているような気がします。全体の構造設計がまったく見えてきませんが、なるべく、標準Module内の処理の中で、収められるようにしたほうが、メモリの負担とか少ないです。
お礼
Wendy02様 アドバイスありがとうございます。 >>(処理を記述) >の部分が分らなければ、本当は話が見えてこないです。 当然ですよね・・・ 長すぎて表示しきれなかったので省略してしまいました。申し訳ございません。 アドバイスも考慮し試行錯誤したところ思うような結果を返すことができました。 本当にありがとうございました。
お礼
hana-hana3様 ご回答ありがとうございます。 >>処理を”ThisWorkbook”のなかに >この場合、 >「Private Sub Workbook_Open()」イベントになります。 >ここに記述すると「Auto_Open()」よりも優先して実行されます。 とのご指摘を受け改善したところ 思うような結果が返ってきました。 本当にありがとうございます。 参考サイトまで教えていただき本当にありがとうございます。