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

ExcelのVBAで作成したマクロをモジュールのみ抜き取って
モジュールのみ起動させる事ってできますか?
初心者ですので、分かり易い回答お願い致します。

A 回答 (2件)

できませんと言い切れないんですが、難しいです


VBA(この場合はエクセルVBA)はそのアプリに付いてる?ビジュアルベーシック
正式にはVisual Basic for Applications です
エクセル専用なので、ワードなんかですら乗せ変えても動作しない内容が多いのはお分かりでしょう
ただ、基本が一緒なので、エクセルやワードに依存しない内容であれば、載せ変えても動作する可能性が高いです

さて、もう一つ
実はWindowsにはVBS(VB Script)と言うものが乗っています
詳細はご自身で確認して頂くとしてVBSについて少し
名前から判るとおり、VBの仲間です
単体のファイル(拡張子は『.vbs』)で実行でき、内容はVBAのsubの内側を書いている感じです
もちろんsubを使って分ける事もできますし、ひとつのファイルをひとつのsubとしてほかのvbsファイルからcallする事もできます

エクセルから抜き出した『.bas』はかなりの部分VBSと互換性があるので、エクセル固有のもの以外の命令のみであれば、一番最初の行をコメントにして、拡張子を『.vsb』にするだけで、実行できます

つまり
そのままではできませんが、多少手を加えれば、できなくも無い
となります


'Attribute VB_Name = "Module2"
Option Explicit

'Sub nnn()
  Dim FSO
  Dim MyFile

  Set FSO = CreateObject("Scripting.FileSystemObject")
  For Each MyFile In FSO.GetFolder("C:\").Files
    MsgBox MyFile.Name
  Next
  Set FSO = Nothing
'End Sub

これはエクセルVBAでつくった C:直下にあるファイル名を次々表示するものです
メモ帳に貼り付けて『.vbs』の拡張子をつけて保存し、ダブルクリックで起動します
エクセルに入れる場合はコメントをはずして拡張子を『.bas』に変更してエクセルからインポートします
    • good
    • 0
この回答へのお礼

ありがとうございます。
分かり易い回答で理解できました。

お礼日時:2008/04/15 00:24

前半は可能、VBEでぐぐりましょう。



後半は「のみ」の意味が難しい。
初心者の人が考える「モジュールのみ」と言えば
たぶん「Excelを起動させない」なんでしょうけど
VBAを「何も起動させずに」実行するのは不可能だと思いましょう。
Excelを表示させないだけでいいならExcelを非表示にするか
VBScriptでぐぐりましょう。

この回答への補足

ありがとうございます。
早速、VBS調べてみます。

補足日時:2008/04/15 00:22
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています