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

マクロを構築して
マクロを実行すると指定されたディレクトリにある
basファイルを取り込み実行するようにしたいのですが、
どのようにすればよいでしょうか?

A 回答 (6件)

まずは、マクロ ==> 新しいマクロの記録 機能を実行します。



この状態で、ご要望の処理を行えば、ご要望処理を自動化するマクロを作成することができます。

この回答への補足

シート上での処理ではないのでマクロの記録では
なにも記録されませんが

補足日時:2008/09/08 16:43
    • good
    • 0

何のために、その様な事をなさりたいのでしょうか。

目的が分かれば、識者から対策案が出てくると思います。
ご質問の内容を文字通り行うと、
Sub test()
With ThisWorkbook.VBProject '(fname).VBProject
.VBComponents.Import Filename:=ThisWorkbook.Path & "\" & "Module2.bas"
End With
Call インポートしたモジュール中のマクロ
End Sub
ですが、当然インポート前はマクロが存在しないので、コンパイルエラーになってしまいます。
ダミーのModule2を置いておいて、同名の空のマクロを入れておき、Module2の削除~インポート~マクロの実行を試みましたが、メモリー中にはModule2が残っている様で(インポートされたコードがModule21になることからも分かりますが)そうは問屋が卸しませんでした。

この回答への補足

毎回のデータ処理の効率を上げるために
できるかぎり自動化できるようなマクロを構築しよと考えています。

マクロブックなんかも利用できるでしょうか?

補足日時:2008/09/09 11:27
    • good
    • 0

ハイパーリンクではダメでしょうか?



マクロの一部で組むというならハイパーリンクをクリックする操作を含めればとりあえず動きます。
    • good
    • 0

#2です。


>毎回のデータ処理の効率を上げるために
>できるかぎり自動化できるようなマクロを構築しよと考えています。
データ処理の効率アップと、マクロ導入の自動化の関係が分かりかねますが、マクロ導入の自動化については、参考URLの様な事はいかがでしょうか。外していたらすみません。

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/haifu/sub0 …
    • good
    • 0

No.2さんのコードですが、Callの代わりにRunを用いれば可能だと思います。

    • good
    • 0

ANo.2です。


ANo.5さんご指摘の方法で可能でした。勉強になりました、ありがとうございます。
Sub test()
With ThisWorkbook.VBProject
.VBComponents.Import Filename:=ThisWorkbook.Path & "\" & "Module2.bas"
Application.Run (ThisWorkbook.Name & "!test2")
.VBComponents.Remove .VBComponents.Item("Module2")
End With
End Sub

'<Module2.bas の内容>
'Attribute...はExcelが勝手に付けたもの
'Attribute VB_Name = "Module2"
'Option Explicit
'
'Sub test2()
' MsgBox "Hello World"
'End Sub
'
    • good
    • 0

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