私はVBAのマクロをしばらく使用していましたが、非表示にしたい情報がいくつかあります。 Excelは非常に危険な言語なので、コンパイルされたスクリプトの.exeファイルを作成して、人々が自分のコードにアクセスしないようにするという考えがあります。 私はVisual Studioでこれを行う方法を探していましたが、答えを得ることはできません。 誰かが私にこれを行う方法を教えてもらえますか? 事前に感謝します:)ビジュアルスタジオでvbaスクリプトを実行してコンパイルします
答えて
vbaを使用してEXE/DLLを作成することはできません。 EXE/DLLはコンパイルされたアセンブリなので、コンパイルできるプログラミング言語/環境が必要です。コンパイルとは機械語にあらかじめ翻訳されていることを意味します。 VBAは単なるインタプリタ言語であり、VBA環境で即座に翻訳されることを意味します。私はあなたがこれを行うにはC#、C++などを使用しなければならないと思います。さらにのinfromationについて参照してください。
http://www.geeksengine.com/article/create-dll.html
https://msdn.microsoft.com/en-us/library/dt232c9t(VS.80).aspx
をあなたはDLLを作成せずに、あなたのVBAコードをロックして非表示にすることができます:
http://www.excel-easy.com/vba/examples/protect-macro.html
http://www.ozgrid.com/VBA/protect-vba-code.htm
Best way to protect Excel VBA code?
しかし、それはあなたの問題を解決するかどうか、私にはわからない:あなたは言う、エクセルVBAは、安全でない言語のようだという。私はあなたが何を意味するのか分かりません。スクリプトの内容を隠すだけの場合は、上記を参照してください。これまでは、これ以上のバージョンのExcelよりもコードを保護することができます。しかし、私はまだそれを解読する方法があると思っています。 g。 (あなたのコードを隠そうとしているのはなぜですか?) )多分あなたは何をしたい達成するための他の方法がある、私に知らせてください。
本当にありがとう、本当にありがとうございます。私はあなたが私に送ったリンクをさらに見ていきますが、今はあまり時間がありません... 私が安全でないことを意味するのは、あなたが気がついたように、パスワードでvbaコードを保護するこれらの方法は非常に簡単に侵入する。 現在、データベースからデータをインポートしようとしています。そのため、データベースのIP:ポートとIDとPASSがスクリプトにありますが、これは完全に受け入れられません。それはビジネスでの内部使用のためですが、あなたが知っている...ごめんなさいよりも安全... –
コンパイルされた言語と翻訳された言語の違いを理解しています...しかし、今までのすべての仕事はVBAで行われています..コードのプログラミング方法を変えるのは本当に退屈な作業だ。だから、データベースへの接続部分に.DLLを作成する可能性を考えているのだから、すべての機能がOKになり、UserIDとPASSWORDコンパイルされた部分で安全です。あなたが私を理解できるように私の問題を十分に説明してくれることを願っています。私が言ったように、私はあなたが私に送ったリンクを見て、私は良い結果を得ることができると思います。私はもしそうならあなたに知らせるでしょう! –
はい、確かに、私はあなたが意味することを知っています。私は今までvbaで独自のdllを開発していませんでした。しかし、私がリンクを理解する限り、あなたの機能の一部を動かすことが可能でなければなりません。可能性としては、プロキシのようなdllを作成する可能性があります。私はあなたを助けることができる以下の投稿を見つけました[http://stackoverflow.com/questions/3217014/how-to-securely-store-connection-string-details-in-vba](http://stackoverflow.com/questions)/3217014/how-to-secure-store-connection-string-details-vba) – Stefan
using ADODB;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace HiddenConnectionString
{
[InterfaceType(ComInterfaceType.InterfaceIsDual),
Guid("2FCEF713-CD2E-4ACB-A9CE-E57E7F51E72E")]
public interface IMyServer
{
Connection GetConnection();
void Shutdown();
}
[ClassInterface(ClassInterfaceType.None)]
[Guid("57BBEC44-C6E6-4E14-989A-B6DB7CF6FBEB")]
public class MyServer : IMyServer
{
private Connection cn;
private string cnStr = "Provider=MSDAORA.1;Password=YourPass;User ID=YourID;Data Source=YourServer";
public MyServer()
{
}
public Connection GetConnection()
{
cn = new Connection();
cn.ConnectionString = cnStr;
cn.Open();
return cn;
}
public void Shutdown()
{
cn.Close();
}
}
}
あなたはこのエラーを取得する可能性があります...それが原因InterfaceTypeはのGuid
であるよりも、アクセスがあります拒否されました(HRESULTからの例外:0x80070005(E_ACCESSDENIED)) ソリューションについては、このリンクをチェックしてください:
これはコードですが、私はステファンが提案リンクを訪問します。
- 1. VBAのシェルコマンドを使用してExcelでRスクリプトを実行しています
- 2. Excel VBAからAutoitスクリプトを実行しています
- 3. autohotkey:ahkスクリプトでvbaマクロを実行する
- 4. テストケースをコンパイルして実行するためのbashスクリプト
- 5. bashスクリプトからjavaをコンパイルして実行する
- 6. VBAスクリプト実行時にエラー
- 7. Windows 7:ファイルを右クリックしてカスタムExcel VBAスクリプトを実行
- 8. vba SAPスクリプトの後にExcelがフリーズしていますが、実行中です。
- 9. slantでPythonをコンパイルして実行しています
- 10. 特定の部門のスクリプトを実行してスクリプトを実行します
- 11. ビジュアルスタジオでクラウド負荷テストを使用してセレンウェブテストを実行しています
- 12. VBAからRスクリプトを実行する
- 13. ExcelでVBAマクロを実行してSQL文を実行する
- 14. PDFファイルを実行してVBAで.Rを実行する
- 15. コンパイルして実行シャトルアプリケーション
- 16. コンパイル(ただし、実行されません)Pythonスクリプト
- 17. VimでCプログラムをコンパイルして実行
- 18. MS Access VBAからExcel VBAを実行しています
- 19. プログラムはヘッダファイルなしでコンパイルして実行します。turbo C++
- 20. CrontabでPythonスクリプトを連続して実行しています
- 21. すべてのシートでVBAを実行しています
- 22. ビジュアルスタジオでng2-bootstrapを参照してtypescriptをコンパイルしようとしました
- 23. コンソールアプリケーションはビジュアルスタジオで実行しても動作しません。作成した.exeは実行しません。
- 24. imshowでOpenCVスクリプトを実行します。
- 25. スクリプトをバックグラウンドで実行しますか?
- 26. ブラウザスタックでSeleniumスクリプトを実行します。
- 27. vbaは.quitで実行時エラー438を実行します。
- 28. ビジュアルスタジオの中で角度シードプロジェクトを実行しますか?
- 29. OpenMPIプログラムをコンパイルして実行する
- 30. Outlook "スクリプトを実行する"ルールが受信メッセージのVBAスクリプトをトリガーしない
これが問題を解決するかどうかわかりませんが、おそらくプラグインを使用できますか? [Create Excel 2007 vsto add in](http://www.clear-lines.com/blog/post/create-excel-2007-vsto-add-in-getting-started.aspx) – Stefan
@Stefanありがとうございますあなたの答え。あなたのリンクからいくつかの研究を始めました。私はそれが役に立つと思っています。私はテストの下に置いていませんが、それが私が探していた出発点です。 = D –
さて、聞いてうれしいです。あなたが探しているものを見つけたら、あなたの知識を共有してください。 ;) – Stefan