• ベストアンサー

VBAで作成したマクロをデスクトップで起動

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

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

  • ベストアンサー
  • pulsa
  • ベストアンサー率57% (34/59)
回答No.1

できませんと言い切れないんですが、難しいです 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』に変更してエクセルからインポートします

free_mees
質問者

お礼

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

その他の回答 (1)

  • davidname
  • ベストアンサー率40% (4/10)
回答No.2

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

free_mees
質問者

補足

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

関連するQ&A