いつも本当に有難うございます。
ExcelVBA初心者です。
① Set wdApp = CreateObject("Word.Application.8")
②Set objWshShell = WScript.CreateObject("WScript.Shell")
このようなオブジェクト変数に格納する一文を見たとき、
どのように考えればいいのでしょうか。
この一文は一体何をどのように命令しているのか、と思って、
躓いております...
そういうものだ、という理解の仕方ができず、自分でもいちいち躓いて恥ずかしいのですが、やはり理解したいと思い、質問させていただきます。
お手数おかけしますが、よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
0
CreateObjectはCOMという方法に則って作られたオブジェクトを作成します。
実際には"WScript.Shell"といった名前や対応するDLL/EXEのパスはレジストリに登録されていて、
この名前のオブジェクトを作成して、とWindowsにお願いすればWindowsはレジストリを調べて
DLLを読み込み(EXEを実行し)、その中に実装されているCOMの決まった方法を呼び出して
オブジェクトを作成してくれます。
オブジェクトとは返ってきた変数を通してやり取りできます。
WordなどEXEの場合別プロセスで実行されますが、オブジェクトに対する呼び出しは
自動的にプロセス間通信に変換してくれるので単純な呼び出しなのか通信を伴うのかを
意識せずにやり取りができます。
投稿2015/03/19 13:27
総合スコア2850
0
ベストアンサー
①:さっさと、OFFICE2000以後で有効な構文に書き換えないと。
バージョン指定が有効だったのは、OFFICE 95 / 97 辺りまで。
②:ええええ?こんな事しなければ、出来ない処理系って古すぎ、
まずは、バージョンアップの可能性調査、ダメならEXCEL-DNA
⇒VBAや元になったVB6は、1998年リリースです。
OFFICE-95:VBA5.0
OFFICE-97:VBA6.0
だったはず。
VB6は、VB系列の一つの到達点、
以後VB.NET系へ移行、VB6系が生き残っているのは、OFFICE系
EXCEL-DNAを使えば、.NET系が使用可能となります。
あえて、VBAを使う意味は、共通プラットフォームとして、使用可能という点のみ。
さっさと、VS20XXへ移行すべき
’
EXCEL&VBA 縛り(≒OFFICEのみが許されて、アプリインストールが許されない)
ならば、アリかも。
⇒MDAC経由でADOから、DBも使えるし、共通プラットフォームとしては、
MS-OFFICE環境として、機能します。
’
>この一文は一体何をどのように命令しているのか、と思って、
>躓いております...
本筋は、こっちだったようで。
①:MS-WORD 8 を起動したつもりになっているだけ、OFFICE2000以後、無効
事前バインディング、実行時バインディングの使い分けを考えた方がマシ。
Microsoft Office アプリケーションを他の Office アプリケーションから制御する方法
https://msdn.microsoft.com/ja-jp/library/cc342837.aspx?f=255&MSPPError=-2147217396
②:この先が問題、これだけだと、意味不明
投稿2015/03/19 12:55
編集2015/03/19 13:15総合スコア2030
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/03/20 02:07