人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MicrosoftのVBで悩む。
VBAの方からコピーしてきたマクロでエラーが起きました。
オブジェクトブラウザを使って原因を調べてみると、CreateObjectというメンバがVBA専用だったようです。Excelで代用する方法を教えてください。
バージョン:VB…6.0 Excel…2002

●質問者: kota_46ra
●カテゴリ:コンピュータ 学習・教育
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● cx20
ベストアンサー

VBA でも VB6 でも CreateObject() メソッドは使用できます。
VBA 専用ということはありません。

以下は VBA / VB6 で、それぞれ CreateObject() を使用した場合の例になります。
(「Speech API」というコンポーネントを利用して「Hello」としゃべらせるサンプルです。)

' VBA での CreateObject() の使用例
Sub SayHello()
 Dim voice  ' コンポーネント参照用変数の宣言
 Set voice = CreateObject("SAPI.SpVoice") ' コンポーネントの生成
 voice.Speak "Hello"  ' コンポーネントのメソッド呼び出し
End Sub
' VB6 での CreateObject() の使用例
Private Sub Command1_Click()
 Dim voice  ' コンポーネント参照用変数の宣言
 Set voice = CreateObject("SAPI.SpVoice") ' コンポーネントの生成
 voice.Speak "Hello"  ' コンポーネントのメソッド呼び出し
End Sub

エラーメッセージが表示されるようでしたら、その内容を記載して頂けると解決策をご提示できるかもしれません。

■ ProgID - VBScript グループ
http://vbscript.g.hatena.ne.jp/keyword/ProgID


cx20さんのコメント
>> Excel VBA の関数を Excel ワークシートで使用したいという質問でしょうか? << 単純に、Excel ワークシートで VBA の処理を呼び出したい場合であれば「ユーザー定義関数」を作成することで実現可能です。 基本的に、上記のサンプルの「Sub ? End Sub」を「Function ? End Function」に書き換えれば、Excel ワークシートから呼出し可能になります。 >|vb| Function SayHello() Dim voice Set voice = CreateObject("SAPI.SpVoice") voice.Speak "Hello" End Function ||< 呼び出し側 >> =SayHello() <<
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ