最近、VBに興味を持ち始めて、インターネットでサンプルや初心者向けの説明を探しながら独学しています。
VBはもっておらず、ExcelVBAを使っています。
こちらのAPIサンプルで、使ってみたいものがあるのですが、ダウンロードした後どのようにしたら良いのか判りません。
きわめて幼稚な質問で申し訳ありませんが、教えていただけないでしょうか。
また、基本から応用まで載っている、VBもしくはVBAの書籍などありましたら、ご紹介願えれば幸いです。
書き忘れましたが、実際に使ってみたいのは、
「ファイルを保存」コモンダイヤログを表示する
というものです。宜しくお願します。
VBAはあんまり使ったこと無いですけど、
プロジェクトウィンドウからユーザーフォームを追加して、
ツールメニューからコントロールの追加で
『Microsoft Common Dialog Control』をチェックすれば使えるみたいです。
nanashiさん、ありがとうございます。
教えてもらったとおりにやろうとしたのですが、
「プロジェクトウィンドウ」上で右クリック、「ファイルのインポート」でフォームを選択すると、
「ファーム クラスに含まれている'C:\(中略)\Form1.frm'はVBEでサポートされていません。ファイルは読み込めません。」と出てしまいました。
また、ツールメニューには「コントロールの追加」と言う項目がありません。
「その他のコントロール...」と言うのがそれに該当しそうなのですが、非アクティブになっています。
ExelのVBAではできないということでしょうか?
残念です。
VBのファイルはVBAでは使えません。VBAのユーザーフォーム
を新規で追加して、VBのこーどのみ貼り付ける必要があります。
VBとVBAは結構違うからVBAの掲示板探してVBAのサンプル使った
ほうがいいと思うよ。
ここのサンプルそのままのコードでは使えませんので、違いを吸収できるような
修正が必要です。
どうしてもサンプルのAPIを使うなら標準モジュールも追加して、
サンプルの Module1.bas をテキストファイルとして開いてコードを
VBAの Module1 にコピー。App.hInstance は無いので 0 に置き換え。
UserForm1 に TextBox1 TextBox2 と CommandButton1 を貼り付けて(オブジェクト名)を
それぞれ Form1 Text1 Text2 Command1 に変更。
サンプルの Form1.frm をテキストファイルとして開いて
Private Sub Command1_Click()
から
End Sub
までのコードをコピー Form1.hWnd は無いので Hwnd に修正。
Private Sub Form_Load()
から
End Sub
までのコードをコピー Load イベントは無いので
Private Sub Form_Load()
を
Private Sub UserForm_Initialize()
に置き換え。…で動くんじゃないかなぁ。多分。
VBのフォームは使えないと思いますけど、
挿入で「ユーザーフォーム」を選べば新しいフォームが出来ます。
フォームが表示されていればツールメニューから「その他のコントロール」で
「コントロールの追加」ダイアログウィンドウが出るのでコモンダイアログを追加してください。
> ExelのVBAではできないということでしょうか?
> 残念です。
VBとVBAは別物です。
VBのサンプルがそのまま動く保証は無いと思います。
でもVBAでもコモンダイアログは使えますよ。
そのFormはエクセルで作成したフォームですか?
VBで作成したフォームだとエクセルでは使用できませんので、
そのようなエラーが出ます。
ツールボックスやその他のコントロールは、フォームがないと
使えません。
エクセルで作ったフォームをインポートするか、新規に
ユーザーフォームを挿入してください。
特攻隊長まるるうさん、詳しい説明、ありがとうございました。
やってみましたがうまくいきませんでした。
ご指摘の通り、VBAのサンプルを探してみます。
nanashiさん、LESIAさん、ありがとうございました。
VBとVBAの違いも良く分からない状況で手の込んだことをしようとしたのが
そもそもいけなかったですね。
勉強して出直します。
「解決」とは言いにくいですが、これ以上、続けるのも申し訳ないので
これで締めます。
皆さんありがとうございました。
もし、VBAでうまくいく方法が見つかりましたら、報告したいと思います。
ツイート | ![]() |