石鹸箱 IV

VBA研究所に集まる方々の憩いの場です。みなさん自由にお使いください。
ここでは VBA の質問は厳禁。

4932 / 5126 ツリー ←次へ | 前へ→

【1433】動作確認にご協力願いたいのですが… 小僧 05/4/12(火) 16:13
【1434】Re:動作確認にご協力願いたいのですが… 谷 誠之 05/4/12(火) 17:05
【1435】Re:動作確認にご協力願いたいのですが… こうちゃん 05/4/13(水) 9:34
【1436】Re:動作確認にご協力願いたいのですが… ichinose 05/4/13(水) 18:01
【1437】Re:動作確認にご協力願いたいのですが… 小僧 05/4/14(木) 9:31
【1754】Re:動作確認にご協力願いたいのですが… 小僧 05/11/16(水) 16:54
【1439】Re:動作確認にご協力願いたいのですが… こうちゃん 05/4/15(金) 9:16

【1433】動作確認にご協力願いたいのですが…
 小僧  - 05/4/12(火) 16:13 -

引用なし
パスワード
   こちらには初の投稿となります。

主にACCESS質問箱を閲覧させて頂いてますが、
EXCELとの連動を行っている方が結構いらっしゃるように
見受けられます。
そこでACCESSから自動でエクセルの参照設定をできるよう、
コードを考えさせて頂きました。

Function DBOPEN()
Dim Ref As Variant
Dim xlsGUID As String
Dim Majo As Long
Dim Mino As Long

  For Each Ref In Application.References
    If Ref.BuiltIn Then
      If Ref.Name = "EXCEL" Then Application.References.Remove Ref
    Else
      Application.References.Remove Ref
    End If
  Next

  xlsGUID = "{00020813-0000-0000-C000-000000000046}"
  Select Case SysCmd(acSysCmdAccessVer)
    Case 8: Majo = 1: Mino = 2 'AC97
    Case 9: Majo = 1: Mino = 3 'AC2000
    Case 10: Majo = 1: Mino = 4 'AC2002
    Case 11: Majo = 1: Mino = 5 'AC2003
    Case Else: GoTo ErrExe
  End Select

  Application.References.AddFromGuid xlsGUID, Majo, Mino
  Exit Function
ErrExe:
  MsgBox "エクセルの参照設定を手動で行ってください"
End Function

当方の環境でAC97、AC2002で作動確認を済ませておりますが、
AC2000、AC2003で確認ができる方がいらっしゃいましたら
お手数ですが結果を教えて頂きたいと思っております。

…目安箱にあります、Jakaさんの汎用性のあるコードには
お世話になっております。
自分のコードは稚拙ではありますが、動作的に問題がなければ
目安箱に載せさせて頂こうと思っております。

※管理人様、内容が不適切でしたらお手数ですが削除をお願いします。

【1434】Re:動作確認にご協力願いたいのですが…
 谷 誠之 E-MAIL  - 05/4/12(火) 17:05 -

引用なし
パスワード
   小僧さん、VBA質問箱の主宰者、谷です。
いつもVBA質問箱をご利用いただきまして、ありがとうございます。

>主にACCESS質問箱を閲覧させて頂いてますが、
>EXCELとの連動を行っている方が結構いらっしゃるように
>見受けられます。
>そこでACCESSから自動でエクセルの参照設定をできるよう、
>コードを考えさせて頂きました。
>
>当方の環境でAC97、AC2002で作動確認を済ませておりますが、
>AC2000、AC2003で確認ができる方がいらっしゃいましたら
>お手数ですが結果を教えて頂きたいと思っております。
>
>…目安箱にあります、Jakaさんの汎用性のあるコードには
>お世話になっております。
>自分のコードは稚拙ではありますが、動作的に問題がなければ
>目安箱に載せさせて頂こうと思っております。

ご協力ありがとうございます。
便利なコードをみなさんに利用していただこうとされるお心構えには恐縮します。逆にそのような方が集まって、このVBA質問箱が成立しています。

今後ともVBA質問箱をよろしくお願いいたします。

【1435】Re:動作確認にご協力願いたいのですが…
 こうちゃん  - 05/4/13(水) 9:34 -

引用なし
パスワード
   小僧さん、みなさん、こんにちは

>当方の環境でAC97、AC2002で作動確認を済ませておりますが、
>AC2000、AC2003で確認ができる方がいらっしゃいましたら

AC2000、AC2003で動作確認いたしました。
是非目安箱に投稿お願いしますね。

【1436】Re:動作確認にご協力願いたいのですが…
 ichinose  - 05/4/13(水) 18:01 -

引用なし
パスワード
   みなさん、こんにちは
小僧さん、確認させて頂きました。

>
>>当方の環境でAC97、AC2002で作動確認を済ませておりますが、
>>AC2000、AC2003で確認ができる方がいらっしゃいましたら
>
AC2000で確認しました。
Excelへの参照設定は出来ていましたる
ちょっと気になった点ですが・・・、

>If Ref.BuiltIn Then
>If Ref.Name = "EXCEL" Then Application.References.Remove Ref

となっていますが、BuiltInプロパティがTrueで削除って出来ましたっけ?
それと既存の参照設定が削除されてしまうのが気になりましたが・・・。

こうちゃん、久しぶり〜

【1437】Re:動作確認にご協力願いたいのですが…
 小僧  - 05/4/14(木) 9:31 -

引用なし
パスワード
   ▼谷さま
  ありがたいお言葉ありがとうございます。

ichinose さん、こうちゃんさん
  動作確認をして頂いてありがとうございます。

>AC2000で確認しました。
>Excelへの参照設定は出来ていましたる
>ちょっと気になった点ですが・・・、
>
>>If Ref.BuiltIn Then
>>If Ref.Name = "EXCEL" Then Application.References.Remove Ref
>
>となっていますが、BuiltInプロパティがTrueで削除って出来ましたっけ?

エクセルの参照設定をONにした後、
Application.References.AddFromGuid xlsGUID, Majo, Mino

をコメントブロックして実行したところ、
参照設定が外れていたので出来ていると思われたのですが…。

>それと既存の参照設定が削除されてしまうのが気になりましたが・・・。

既存のエクセルの参照設定を削除して、ACCESSのバージョンにあった
エクセルの参照を再設定しているので大丈夫だと思ったのですが…。

当方の浅い知識で作成したコードのため思い違い等あると思われますので、
他にも問題点がありましたら挙げていただけたら幸いです。

【1439】Re:動作確認にご協力願いたいのですが…
 こうちゃん  - 05/4/15(金) 9:16 -

引用なし
パスワード
   >こうちゃん、久しぶり〜

ichinoseさん、おひさしぶりです。
たま〜に覗いてはいるんですが、継続してサポートできないので
回答はひかえてます。

みなさん引き続き活躍されているのは、うれしい限りです。

#スレに関係ない話で申し訳ないm(_ _)m

【1754】Re:動作確認にご協力願いたいのですが…
 小僧  - 05/11/16(水) 16:54 -

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

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

こちらのレスを見て以前うまくいかなかったコードを思い出し、見直してみました。

Function DBOPEN1()
Dim Refs As References
Dim xlsGUID As String
Dim Majo As Long
Dim Mino As Long
Dim i As Long
  
  xlsGUID = "{00020813-0000-0000-C000-000000000046}"
  Set Refs = Application.References
  
  For i = Refs.count To 1 Step -1
    If Refs(i).IsBroken Then
      Debug.Print Refs(i).Guid
      Application.References.Remove Refs(i)
    Else
      If Refs(i).Guid = xlsGUID Then Application.References.Remove Refs(i)
    End If
  Next
  Set Refs = Nothing

  Select Case SysCmd(acSysCmdAccessVer)
    Case 8: Majo = 1: Mino = 2 'AC97
    Case 9: Majo = 1: Mino = 3 'AC2000
    Case 10: Majo = 1: Mino = 4 'AC2002
    Case 11: Majo = 1: Mino = 5 'AC2003
    Case Else: GoTo ErrEXE
  End Select

  Application.References.AddFromGuid xlsGUID, Majo, Mino
  Exit Function
ErrEXE:
  MsgBox "エクセルの参照設定を手動で行ってください"
End Function

Excel 以外であっても全ての「参照不可」外し、
Access のバージョンにあった Excel の参照設定を張りなおすコードです。
一応全バージョンをチェックしたつもりですが、
何か問題があるようでしたら御教示願います。

※ 問題がないようでしたら今度こそ目安箱に…

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