Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8502 / 13644 ツリー ←次へ | 前へ→

【32844】CreateObject("〜")の書き方 KK 05/12/24(土) 12:36 質問[未読]
【32845】Re:CreateObject("〜")の書き方 Kein 05/12/24(土) 14:40 回答[未読]
【32849】Re:CreateObject("〜")の書き方 KK 05/12/24(土) 17:52 お礼[未読]
【32855】Re:CreateObject("〜")の書き方 KK 05/12/25(日) 10:14 質問[未読]
【32860】Re:CreateObject("〜")の書き方 KK 05/12/25(日) 15:01 お礼[未読]
【32886】Re:CreateObject("〜")の書き方 小僧 05/12/26(月) 14:42 回答[未読]
【32898】Re:CreateObject("〜")の書き方 KK 05/12/26(月) 15:50 お礼[未読]

【32844】CreateObject("〜")の書き方
質問  KK  - 05/12/24(土) 12:36 -

引用なし
パスワード
   いつも勉強させてもらっています。

Microsoft Forms 2.0 Object Libraryを参照設定するのに、
Userformをブックに挿入すると、自動的に参照設定されるので、
ダミーのUserformをブックに挿入した状態で、

Dim obj As New DataObject

として、使っていますが、ダミーのUserformをブックに挿入しい状態で、

Dim obj As Object
Set obj = CreateObject("〜")

として使いたいのですが、〜の書き方が分りません。
もし書くことができるのなら、どのように書けばよいのでしょうか。

例として、次のコードが動くようにしたいのですか。

PutInClipboard メソッドのヘルプの使用例を変形させたものですが、

Sub test()
Dim d As String
  'Set obj = New DataObject
  'を
  Dim obj As Object
  Set obj = CreateObject("〜")
  'のようにしたいのですが。
  
  d = "データ"
  
  obj.SetText d
  obj.PutInClipboard

  Range("A1").Paste
End Sub

【32845】Re:CreateObject("〜")の書き方
回答  Kein  - 05/12/24(土) 14:40 -

引用なし
パスワード
   参照設定がされているか調べて、されてなければ設定をするコードではダメかな ?

Sub Check_DLL()
  Dim i As Long
  Dim Flg As Boolean
  Const MyPh As String = _
  "C:\WINNT\System32\FM20.DLL"
 
  With Application.VBE.ActiveVBProject.References
   For i = 1 To .Count
     If .Item(i).FullPath = MyPh Then
      Flg = True: Exit For
     End If
   Next i
   If Flg Then
     MsgBox "参照設定済みです", 64
   Else
     MsgBox "参照を設定します", 64
     .AddFromFile MyPh
   End If
  End With
End Sub

もし、未だ設定していない状態であることが確実なら

Application.VBE.ActiveVBProject.References _
.AddFromFile "C:\WINNT\System32\FM20.DLL"
Set Dobj = New DataObject

などとするとか。

【32849】Re:CreateObject("〜")の書き方
お礼  KK  - 05/12/24(土) 17:52 -

引用なし
パスワード
   ▼Kein さん 今晩は。

CreateObject("〜")が使えると、簡単なコードになったのですが、
仕方ないですね。

Check_DLLを呼び出すことでできました。

>  Const MyPh As String = _
>  "C:\WINNT\System32\FM20.DLL"

マシンが WindowsMe だったので

  Const MyPh As String = _
  "C:\WINDOWS\SYSTEM\FM20.DLL"   'win_Me

に修正して動きました。

有難うございました。

【32855】Re:CreateObject("〜")の書き方
質問  KK  - 05/12/25(日) 10:14 -

引用なし
パスワード
   関連質問なのですが、

win98時代にMicrosoft Agent control2.0 を使って作ったものをXP上でも使用
したいので、Microsoft Agent control2.0 を CreateObject("〜") か同様の
コードで参照設定できるのでしょうか。あればどのように記述したらよいのでし
ょうか。

また、このような参照設定の仕方をヘルプ以外で、どのようにして知ることがで
きるのでしょうか。

【32860】Re:CreateObject("〜")の書き方
お礼  KK  - 05/12/25(日) 15:01 -

引用なし
パスワード
   自宅マシンWin_Me では、これで上手くできました。

Application.VBE.ActiveVBProject.References _
  .AddFromFile "C:\WINDOWS\MSAGENT\AGENTCTL.DLL" 'AGENTCTL  'win_Me

職場のXP上でも使用できるように、職場で確認しながらやってみます。

有難うございました。

【32886】Re:CreateObject("〜")の書き方
回答  小僧  - 05/12/26(月) 14:42 -

引用なし
パスワード
   ▼KK さん:
こんにちは。

色々探してみたのですが、DataObject については見つかりませんでした。

>Microsoft Agent control2.0

Sub AgentControlのインスタンス作成()
Dim ObjAgent As Object

  Set ObjAgent = CreateObject("Agent.Control.2")
    '処理
  Set ObjAgent = Nothing

End Sub

レジストリ HKEY_CLASSES_ROOT にある Agent.Control の CurVer を参照してみました。


Sub AgentControの参照()
  Application.VBE.ActiveVBProject.References _
    .AddFromGuid "{F5BE8BC2-7DE6-11D0-91FE-00C04FD701A5}", 2, 0
End Sub

既に参照設定がされている場合、参照するライブラリがない場合などの
エラートラップも必要になってきますね。

【32898】Re:CreateObject("〜")の書き方
お礼  KK  - 05/12/26(月) 15:50 -

引用なし
パスワード
   小僧 さん 今日は。

色々と探してくださり有難うございます。

>  Set ObjAgent = CreateObject("Agent.Control.2")

の使い方は、後でゆっくり確認してみます。

>  Application.VBE.ActiveVBProject.References _
>    .AddFromGuid "{F5BE8BC2-7DE6-11D0-91FE-00C04FD701A5}", 2, 0

はWin_Meで確認できました。
XPについては、後で確認してみます。

有難うございました。

8502 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free