2011-11-28 71 views
7

は、私が使用するファイル:埋め込みEXEファイルが

retVal = Shell("program.EXE " & filename, vbNormalFocus) 

は私のExcelスプレッドシートのためのプログラムの必要性を実行します。

EXEファイルをExcelファイルに埋め込むことはできますか?

どうすれば実行できますか?

Ideias:

1 - bin2str機能のいくつかの種類が文字列にバイナリオンにする(私は変数とstr2bin(opositeとしてプログラムに保管することができます)

2 - 私は何かについてOLEコントロールを(あなたがそこにそれを埋め込むことができることを)読んで、この1

+0

No downvote。外部のプログラムにExcelシートを埋め込まずに与えることはできません。 – Mudassir

+0

私は対処しなければなりません。そして、私は彼らがxlsファイルを削除しないことを知っています。私がそこに置いた他のファイルについてはあまり確かではありません。 –

+2

あなたのプログラムが依存しているファイルを確認することができます。見つからない場合は、ユーザーに通知してください。彼らはあなたのプログラムを使いたい場合、すべてのコンポーネントを保持しなければなりません。 – Mudassir

答えて

6

に開始するようにすると、ここではOLEを回避アウトラインソリューションだところ私は本当に知りません。

  1. 非表示のワークシートを作成します。
  2. エンコードされたベース64を使用して、exeをテキストに変換します。
  3. そのテキストを隠しワークシートのワークシートセルに格納します。セル内の文字数(32,767)には制限があるため、文字列をチャンクに分割する必要があります。

exeファイルを保存して実行する場合は、この手順を逆にする必要があります。

+5

ああ。じぶんの。神。これは不愉快で、私は自分自身を殺したい。 +1 –

+0

@ Jean-François私は知っている、あまりにもqueezyになります! –

2

これは、[挿入]> [オブジェクト]を使用して[ファイルから作成]を選択することで実行できます。 VBAを使用してシートに追加する

Dim o As OLEObject 
Set o = ActiveSheet.OLEObjects.Add(Filename:="C:\program.exe") 

その後、これはPROGRAM.EXEを実行するコマンドです:

o.Verb Verb:=xlPrimary 

ないことに引数を渡す方法を確認してください、しかし、(たとえば、あなたのfilename)。

注:信頼できないアプリケーションでは、実行すると警告が表示されます。

関連する問題