アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルをカード型データベース的に利用しています。既に、500個のデータ(ファイルが500もある)を入力したのですが、各エクセルファイルにブックが開いたときに実行したいマクロが発生しました。
私の実力では、各ファイルを手動で開き、カットペを行なうしか?思いつきません。どなたか、救済の方法をご存知のかたいらっしゃいませんでしょうか?宜しくお願い致します。

A 回答 (2件)

こんばんは。

Wedny02です。

マクロでマクロを書くのは、今は、禁止わざの1つですね。

Microsoft Visual Basic for Applications Extensibility 5.3(Excel 2002の場合) の参照設定をして、

Dim myVbc As VBIDE.VBComponent

というような書き出しで行います。以下のようなエラーが出ることがありますので、対処する必要があります。

http://support.microsoft.com/default.aspx?scid=k …
エラー メッセージ : 実行時エラー '1004': プログラミングによる Visual Basic プロジェクトへのアクセスは信頼性に欠けます

これは、掲示板ではあまりはばかられる種類のコードですので、検索して調べてください。

他には、1つ作って、bas ファイルをエキスポートして、VBEにインポートさせるマクロを作ることです。

例:
TargetWorkbook.VBProject.VBComponents.Import strTempFile

他には、Personal.xls に、イベントによるインスタンスを設けてあげることですね。
そのまま、Open イベントだけですと、自ブックにイベントを行うだけですが、以下のように、WithEvents で設けてあげます。以下は簡易型です。

Private WithEvents App As Application

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
 On Error Resume Next
  '実行プログラム
End Sub

Private Sub Workbook_Open()
 Set App = Application
End Sub

他にも、アドインでできるような気がしますが、やはり定番のクラス-インスタンスで行う方法になってしまうかと思います。
    • good
    • 0
この回答へのお礼

いつもいつも判りやすいご指導(と言っても、初心者の私にとっては、必死になって解読していますが)ありがとう御座います。今回も、聞いたことのない単語が一杯出てきました。がんばって読解します。おかげさまで、いま作ろうとしているマクロも随分出来上がってきました。正直一度みて貰いたいぐらいですが、内容がつぎはぎ状態なので、これなら、一から作り直した方が早いって言われそうですね?正直、今のマクロの肝心の部分は、Wendy02さんが作ったと言っても過言ではありません。本当に感謝しております。
ますます、勉強しますので、今後とも宜しくお願い致します。
ありがとう、御座います。

お礼日時:2005/11/16 20:37

マクロの記録で、個人用マクロブックに保存を選んで保存


すると
PERSONAL.XSLファイルが作られます。
VBEで、PERSONAL.XSLのThisWorkbookで
Workbook_Open()
にすべてのファイルで実施したいマクロを記述すれば
すべてのファイルでブックを開いた時に実行されるようになります。

この回答への補足

早速のご回答ありがとう御座います。ブックを開いた時に実行されるようにする方法は承知しています。そのマクロを別のブックにVBAでブックを開き(ブックを開く方法は承知しています)、書き込む方法(各々のブックのThisworkbook)を教えて頂けないでしょうか?初歩的な質問ですみません。宜しくお願い致します。

補足日時:2005/11/16 20:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!