Excel VBA質問箱 IV

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

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


13157 / 13646 ツリー ←次へ | 前へ→

【6761】参照設定について NH 03/8/2(土) 8:32 質問
【6762】Re:参照設定について ichinose 03/8/2(土) 10:51 回答
【6763】Re:参照設定について(訂正) ichinose 03/8/2(土) 10:55 発言
【6765】Re:参照設定について(さらに訂正) ichinose 03/8/2(土) 13:32 発言
【6767】Re:参照設定について(さらに訂正) NH 03/8/2(土) 18:25 発言
【6768】Re:参照設定について(さらに訂正) ichinose 03/8/2(土) 20:09 回答
【6769】Re:参照設定について(さらに訂正) NH 03/8/2(土) 20:28 お礼

【6761】参照設定について
質問  NH  - 03/8/2(土) 8:32 -

引用なし
パスワード
   参照設定についてVB Editor-ツールで参照設定を行いますが、この
チェックする作業そのもの(若しくはチェックされているかどうか
の判定でも良いのですが)をVBAで行うことはできるのでしょうか?
出来たら楽になるんですけど。

【6762】Re:参照設定について
回答  ichinose  - 03/8/2(土) 10:51 -

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

>参照設定についてVB Editor-ツールで参照設定を行いますが、この
>チェックする作業そのもの(若しくはチェックされているかどうか
>の判定でも良いのですが)をVBAで行うことはできるのでしょうか?
>出来たら楽になるんですけど。
「Microsoft Scripting Runtime」(FSO)に参照設定する例です。

'======================================================
Sub main()
  Dim ans As Long
  ans = add_ref(ThisWorkbook, "Scripting", "c:\windows\system\scrrun.dll")
  If ans = 0 Then
    MsgBox "ok"
  Else
    MsgBox Error$(ans)
    End If
End Sub
'========================================================================
Function add_ref(bk As Workbook, refname As String, refpath As String) As Long
  Dim vbr As Reference
  With ThisWorkbook.VBProject
     On Error Resume Next
     wk = .References(refname).Name '参照設定されていなければ、エラー
     If Err.Number <> 0 Then
      Err.Clear
      .References.AddFromFile refpath
      If Err.Number <> 0 Then
        add_ref = Err.Number
      Else
        add_ref = 0
        End If
     Else
      add_ref = 0
      End If
     On Error GoTo 0
   End With
End Function

で参照設定できました。(Excel2000)

【6763】Re:参照設定について(訂正)
発言  ichinose  - 03/8/2(土) 10:55 -

引用なし
パスワード
   >▼NH さん:
>こんにちは。
>
>>参照設定についてVB Editor-ツールで参照設定を行いますが、この
>>チェックする作業そのもの(若しくはチェックされているかどうか
>>の判定でも良いのですが)をVBAで行うことはできるのでしょうか?
>>出来たら楽になるんですけど。
>「Microsoft Scripting Runtime」(FSO)に参照設定する例です。
>
>'======================================================
>Sub main()
>  Dim ans As Long
>  ans = add_ref(ThisWorkbook, "Scripting", "c:\windows\system\scrrun.dll")
>  If ans = 0 Then
>    MsgBox "ok"
>  Else
>    MsgBox Error$(ans)
>    End If
>End Sub
>'========================================================================
>Function add_ref(bk As Workbook, refname As String, refpath As String) As Long
  Dim vbr As Reference '←これ削除してください
>  With ThisWorkbook.VBProject
>     On Error Resume Next
>     wk = .References(refname).Name '参照設定されていなければ、エラー
>     If Err.Number <> 0 Then
>      Err.Clear
>      .References.AddFromFile refpath
>      If Err.Number <> 0 Then
>        add_ref = Err.Number
>      Else
>        add_ref = 0
>        End If
>     Else
>      add_ref = 0
>      End If
>     On Error GoTo 0
>   End With
>End Function
>
>で参照設定できました。(Excel2000)

【6765】Re:参照設定について(さらに訂正)
発言  ichinose  - 03/8/2(土) 13:32 -

引用なし
パスワード
   度々ですみません。
>>▼NH さん:
>>こんにちは。
>>
>>>参照設定についてVB Editor-ツールで参照設定を行いますが、この
>>>チェックする作業そのもの(若しくはチェックされているかどうか
>>>の判定でも良いのですが)をVBAで行うことはできるのでしょうか?
>>>出来たら楽になるんですけど。
>>「Microsoft Scripting Runtime」(FSO)に参照設定する例です。
>>
>>'======================================================
>>Sub main()
>>  Dim ans As Long
>>  ans = add_ref(ThisWorkbook, "Scripting", "c:\windows\system\scrrun.dll")
>>  If ans = 0 Then
>>    MsgBox "ok"
>>  Else
>>    MsgBox Error$(ans)
>>    End If
>>End Sub
>>'========================================================================
>>Function add_ref(bk As Workbook, refname As String, refpath As String) As Long
>   Dim vbr As Reference '←これ削除してください
   With bk.VBProject '←何のためのパラメータだか・・・
>>     On Error Resume Next
>>     wk = .References(refname).Name '参照設定されていなければ、エラー
>>     If Err.Number <> 0 Then
>>      Err.Clear
>>      .References.AddFromFile refpath
>>      If Err.Number <> 0 Then
>>        add_ref = Err.Number
>>      Else
>>        add_ref = 0
>>        End If
>>     Else
>>      add_ref = 0
>>      End If
>>     On Error GoTo 0
>>   End With
>>End Function
>>
>>で参照設定できました。(Excel2000)

【6767】Re:参照設定について(さらに訂正)
発言  NH  - 03/8/2(土) 18:25 -

引用なし
パスワード
   ▼ichinose さん:
>度々ですみません。
>>>▼NH さん:
>>>こんにちは。
>>>
>>>>参照設定についてVB Editor-ツールで参照設定を行いますが、この
>>>>チェックする作業そのもの(若しくはチェックされているかどうか
>>>>の判定でも良いのですが)をVBAで行うことはできるのでしょうか?
>>>>出来たら楽になるんですけど。
>>>「Microsoft Scripting Runtime」(FSO)に参照設定する例です。
>>>
>>>'======================================================
>>>Sub main()
>>>  Dim ans As Long
>>>  ans = add_ref(ThisWorkbook, "Scripting", "c:\windows\system\scrrun.dll")
>>>  If ans = 0 Then
>>>    MsgBox "ok"
>>>  Else
>>>    MsgBox Error$(ans)
>>>    End If
>>>End Sub
>>>'========================================================================
>>>Function add_ref(bk As Workbook, refname As String, refpath As String) As Long
>>   Dim vbr As Reference '←これ削除してください
>   With bk.VBProject '←何のためのパラメータだか・・・
>>>     On Error Resume Next
>>>     wk = .References(refname).Name '参照設定されていなければ、エラー
>>>     If Err.Number <> 0 Then
>>>      Err.Clear
>>>      .References.AddFromFile refpath
>>>      If Err.Number <> 0 Then
>>>        add_ref = Err.Number
>>>      Else
>>>        add_ref = 0
>>>        End If
>>>     Else
>>>      add_ref = 0
>>>      End If
>>>     On Error GoTo 0
>>>   End With
>>>End Function
>>>
>>>で参照設定できました。(Excel2000)

解説していただいてすいません。今Excel2002でテストをしているのですが
どうもうまくいかなくて。

scrrun.dllの位置をc:\windows\system32\scrrun.dll(OS:XP)に変更し
標準モジュールにこのソースを入れて実行したところ
実行時エラー'1004'
プログラミングによるVisual Basic プロジェクトへのアクセスは
信頼性に欠けます

というエラーが表示され、デバッグで見ると
With bk.VBProjectが黄色で反転している状態です。

Thisworkbookにこのソースを入れて実行すると
×印のメッセージボックスに400(多分エラーコードだと思うのですが)
が表示されています。

【6768】Re:参照設定について(さらに訂正)
回答  ichinose  - 03/8/2(土) 20:09 -

引用なし
パスワード
   ▼NH さん:
こんばんは。

>解説していただいてすいません。今Excel2002でテストをしているのですが
>どうもうまくいかなくて。
XPでは、設定が必要らしいですよ。
詳細は、

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=1261;id=excel

を参考にして下さい

>
>scrrun.dllの位置をc:\windows\system32\scrrun.dll(OS:XP)に変更し
>標準モジュールにこのソースを入れて実行したところ
>実行時エラー'1004'
>プログラミングによるVisual Basic プロジェクトへのアクセスは
>信頼性に欠けます
>
>というエラーが表示され、デバッグで見ると
>With bk.VBProjectが黄色で反転している状態です。
>
>Thisworkbookにこのソースを入れて実行すると
>×印のメッセージボックスに400(多分エラーコードだと思うのですが)
>が表示されています。

【6769】Re:参照設定について(さらに訂正)
お礼  NH  - 03/8/2(土) 20:28 -

引用なし
パスワード
   ▼ichinose さん:
>▼NH さん:
>こんばんは。
>
>XPでは、設定が必要らしいですよ。
>詳細は、
>
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=1261;id=excel
>
>を参考にして下さい
>
一発で解決しました。有り難うございますm(__)m。

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