Excel VBA質問箱 IV

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

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


1166 / 13645 ツリー ←次へ | 前へ→

【75894】CreateObject("Scripting.Dictionary")でのエラー 初心者(につまりました) 14/7/31(木) 10:34 質問[未読]
【75895】Re:CreateObject("Scripting.Diction... kanabun 14/7/31(木) 10:57 発言[未読]
【75897】Re:CreateObject("Scripting.Diction... 初心者(につまりました) 14/7/31(木) 11:38 発言[未読]
【75898】Re:CreateObject("Scripting.Diction... kanabun 14/7/31(木) 11:44 発言[未読]
【75902】Re:CreateObject("Scripting.Diction... 初心者(につまりました) 14/7/31(木) 17:31 発言[未読]
【75903】Re:CreateObject("Scripting.Diction... kanabun 14/7/31(木) 17:34 発言[未読]
【75904】Re:CreateObject("Scripting.Diction... kanabun 14/7/31(木) 18:07 発言[未読]
【75905】Re:CreateObject("Scripting.Diction... 初心者(につまりました) 14/8/1(金) 10:37 発言[未読]
【75906】Re:CreateObject("Scripting.Diction... 初心者(につまりました) 14/8/1(金) 10:59 発言[未読]
【75911】Re:CreateObject("Scripting.Diction... kanabun 14/8/1(金) 12:11 発言[未読]
【75917】Re:CreateObject("Scripting.Diction... 初心者(につまりました) 14/8/4(月) 9:08 発言[未読]
【75918】Re:CreateObject("Scripting.Diction... kanabun 14/8/4(月) 9:39 発言[未読]
【75912】Re:CreateObject("Scripting.Diction... 独覚 14/8/1(金) 13:17 発言[未読]
【75916】Re:CreateObject("Scripting.Diction... 初心者(につまりました) 14/8/4(月) 9:06 質問[未読]
【75919】Re:CreateObject("Scripting.Diction... 独覚 14/8/4(月) 11:56 発言[未読]

【75894】CreateObject("Scripting.Dictiona...
質問  初心者(につまりました)  - 14/7/31(木) 10:34 -

引用なし
パスワード
   原因が判らないのでどなたか助けてください。
以下の集計を行うと

Set dic = CreateObject("Scripting.Dictionary")
の箇所で

実行時エラー 429
activexコンポーネントはオブジェクトを作成できません
と表示され先に進めません。

解決方法おわかりの方がいれば教えてください。


  Dim vnt, a
  Dim dic As Object
  
  '
  With Sheets("作業A")
    vnt = .Range("P2", .Range("A65536").End(xlUp)).Value
  End With
  '
  Set dic = CreateObject("Scripting.Dictionary")
  For i = 1 To UBound(vnt, 1)
    If Not dic.exists(vnt(i, 16)) Then
      ReDim a(17)
      a(0) = vnt(i, 1)
      a(1) = vnt(i, 2)
      a(2) = vnt(i, 3)
      a(3) = vnt(i, 4)
      a(4) = vnt(i, 5)
      a(5) = vnt(i, 6)
      
    Else
      a = dic(vnt(i, 16))
    End If
    
    a(6) = a(6) + vnt(i, 7)
    a(7) = a(7) + vnt(i, 8)
    a(8) = a(8) + vnt(i, 9)
    a(9) = a(9) + vnt(i, 10)
    a(10) = a(10) + vnt(i, 11)
    a(11) = a(11) + vnt(i, 12)
    a(12) = a(12) + vnt(i, 13)
    a(13) = a(13) + vnt(i, 14)
    a(14) = a(14) + vnt(i, 15)
    a(15) = a(15) + vnt(i, 16)
    
    dic(vnt(i, 16)) = a
  
  Next i
  
  '-----結果出力
  With Sheets("作業")
    .Cells.ClearContents
    .Range("A1").Resize(, 16).Value = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15")
    
    .Range("A2").Resize(dic.Count, 16).Value = Application _
          .Transpose(Application.Transpose(dic.items))
    .Select
  End With
  '
  Erase vnt
  Set dic = Nothing

【75895】Re:CreateObject("Scripting.Dicti...
発言  kanabun  - 14/7/31(木) 10:57 -

引用なし
パスワード
   ▼初心者(につまりました) さん:

>Set dic = CreateObject("Scripting.Dictionary")
>の箇所で
>
>実行時エラー 429
>activexコンポーネントはオブジェクトを作成できません

Excelのバージョンは?
いままでは動いていたわけですか?

【75897】Re:CreateObject("Scripting.Dicti...
発言  初心者(につまりました)  - 14/7/31(木) 11:38 -

引用なし
パスワード
   ▼kanabun さん:

EXCELのバージョンは excel2007
で今まで動いていました。
ちなみにOSはWIN7です。

最近、WINDOWS UPDATEを行いました。

宜しくお願いします。

【75898】Re:CreateObject("Scripting.Dicti...
発言  kanabun  - 14/7/31(木) 11:44 -

引用なし
パスワード
   ▼初心者(につまりました) さん:

>
>EXCELのバージョンは excel2007
>で今まで動いていました。
>ちなみにOSはWIN7です。
>
>最近、WINDOWS UPDATEを行いました。

試しに、参照設定で「参照不可」になっている項目がないか、
確認してみてください。

(参考ページ)参照設定を確認するには
ht tp://support.microsoft.com/kb/882110/ja#2
↑ここのスペースをとる

【75902】Re:CreateObject("Scripting.Dicti...
発言  初心者(につまりました)  - 14/7/31(木) 17:31 -

引用なし
パスワード
   ▼kanabun さん:
>
>(参考ページ)参照設定を確認するには
>ht tp://support.microsoft.com/kb/882110/ja#2
> ↑ここのスペースをとる

↑のサイトを見て確認しましたが、解決しませんでした。

他にアドバイスあればお願いします。

【75903】Re:CreateObject("Scripting.Dicti...
発言  kanabun  - 14/7/31(木) 17:34 -

引用なし
パスワード
   ▼初心者(につまりました) さん:


>>(参考ページ)参照設定を確認するには
>>ht tp://support.microsoft.com/kb/882110/ja#2
>
>↑のサイトを見て確認しましたが、解決しませんでした。
>
あれ? 「参照不可」の項目はありませんでしたか。
そうなると、自分もちょっと分かりませんです。

参考ページには他にも3つほど挙げてありますが、
これらについてはどうですか?

【75904】Re:CreateObject("Scripting.Dicti...
発言  kanabun  - 14/7/31(木) 18:07 -

引用なし
パスワード
   ▼初心者(につまりました) さん

>  Dim dic As Object
>  
>  Set dic = CreateObject("Scripting.Dictionary")

実験的に、こうしてみたら動きますか?

(1) Microsoft Scripting Runtime に参照設定しておく
(2) 上のコードを 以下に変更する

  Dim dic As Scripting.Dictionary
  
  Set dic = New Dictionary

【75905】Re:CreateObject("Scripting.Dicti...
発言  初心者(につまりました)  - 14/8/1(金) 10:37 -

引用なし
パスワード
   ▼kanabun さん:
>
>(1) Microsoft Scripting Runtime に参照設定しておく

 ↑が表示されませんでした。
 ネットを見てscrrun.dllが関係あるとのことで
 さがしたらはc:\windows\system32の下にありました 

 5.8.7601.18283のバージョンは表示されます。
 
 何か判りますか?

【75906】Re:CreateObject("Scripting.Dicti...
発言  初心者(につまりました)  - 14/8/1(金) 10:59 -

引用なし
パスワード
   ▼初心者(につまりました) さん:
>▼kanabun さん:
>>
>>(1) Microsoft Scripting Runtime に参照設定しておく
>
> ↑が表示されませんでした。
> ネットを見てscrrun.dllが関係あるとのことで
> さがしたらはc:\windows\system32の下にありました 
>
> 5.8.7601.18283のバージョンは表示されます。
> 
> 何か判りますか?

↑ 参照で設定はできましたが、エラーメッセージは同じでした

【75911】Re:CreateObject("Scripting.Dicti...
発言  kanabun  - 14/8/1(金) 12:11 -

引用なし
パスワード
   ▼初心者(につまりました) さん:


>>>(1) Microsoft Scripting Runtime に参照設定しておく
>>
>> ↑が表示されませんでした。
>> ネットを見てscrrun.dllが関係あるとのことで
>> さがしたらはc:\windows\system32の下にありました 
>>
>> 5.8.7601.18283のバージョンは表示されます。
>> 
>> 何か判りますか?
>
>↑ 参照で設定はできましたが、エラーメッセージは同じでした

Microsoft Scripting Runtime の本体は scrrun.dll です。
VBEの画面で、「Microsoft Scripting Runtime」への参照設定はできた
けれど、同じ「実行時エラー」が発生する
__ということですか?

scrrun.dll へのレジストリ・設定が壊れかけているのかな?

CCleanerのようなWindowsレジストリをチェックする無料ツールがありますから、
それで scrrun.dllの参照をチェックしてみては?

【75912】Re:CreateObject("Scripting.Dicti...
発言  独覚  - 14/8/1(金) 13:17 -

引用なし
パスワード
   ▼初心者(につまりました) さん:
Windowsのスタートメニューから「コマンドプロンプト」を右クリックして「管理者で実行」

そのコマンドプロンプトで
regsvr32.exe /u scrrun.dll
と入力してEnter、次に
regsvr32.exe scrrun.dll
と入力してEnterとしてみてはどうでしょうか?

1番目がscrrun.dllの情報をレジストリから削除する命令、2番目がレジストリに登録する命令です。

ちなみにバージョンは私のところと同じでした。

【75916】Re:CreateObject("Scripting.Dicti...
質問  初心者(につまりました)  - 14/8/4(月) 9:06 -

引用なし
パスワード
   ▼独覚 さん:

ありがとうございました。

>regsvr32.exe /u scrrun.dll
>と入力してEnter、次に

↑エラーがでました。

>regsvr32.exe scrrun.dll
>と入力してEnterとしてみてはどうでしょうか?
>
↑正しく処理されました。

しかし、状況は変わりませんでした。

【75917】Re:CreateObject("Scripting.Dicti...
発言  初心者(につまりました)  - 14/8/4(月) 9:08 -

引用なし
パスワード
   ▼kanabun さん:
>>
>>↑ 参照で設定はできましたが、エラーメッセージは同じでした
>
>Microsoft Scripting Runtime の本体は scrrun.dll です。
>VBEの画面で、「Microsoft Scripting Runtime」への参照設定はできた
>けれど、同じ「実行時エラー」が発生する
>__ということですか?
>

↑そうです

>scrrun.dll へのレジストリ・設定が壊れかけているのかな?
>
>CCleanerのようなWindowsレジストリをチェックする無料ツールがありますから、
>それで scrrun.dllの参照をチェックしてみては?

↑ やってみましたが状況変わらずです。

CCleanerは、V4.13 4693のバージョンです。

レジストリーは、触ると怖いのですが・・

【75918】Re:CreateObject("Scripting.Dicti...
発言  kanabun  - 14/8/4(月) 9:39 -

引用なし
パスワード
   ▼初心者(につまりました) さん:

>>VBEの画面で、「Microsoft Scripting Runtime」への参照設定はできた
>>けれど、同じ「実行時エラー」が発生する
>>__ということですか?
>>
>
>↑そうです
>
>>scrrun.dll へのレジストリ・設定が壊れかけているのかな?
>>
>>CCleanerのようなWindowsレジストリをチェックする無料ツールがありますから、
>>それで scrrun.dllの参照をチェックしてみては?
>
>↑ やってみましたが状況変わらずです。

scrrun.dll の参照設定は「できた」 けれど、

>  Dim dic As Scripting.Dictionary
>
と書くと、コンパイルエラーになるのか?
あるいは、そこは通るけれど、実行すると
  
>  Set dic = New Dictionary

で何らかのエラーが発生するのか?

【75919】Re:CreateObject("Scripting.Dicti...
発言  独覚  - 14/8/4(月) 11:56 -

引用なし
パスワード
   ▼初心者(につまりました) さん:

>>regsvr32.exe /u scrrun.dll
>>と入力してEnter、次に
>
>↑エラーがでました。
>
>>regsvr32.exe scrrun.dll
>>と入力してEnterとしてみてはどうでしょうか?
>>
>↑正しく処理されました。
>
>しかし、状況は変わりませんでした。

一番目でエラーが出たということは「scrrun.dll」に関する情報がレジストリに
登録されていなかったということなのかな?
ただ、二番目後もエラーになるということは別に原因があるんだろうか。

PCの再起動後も同じ状況かな?
あと、念のため確認だけど「右クリックで「管理者として実行」は行っていますか?

あと、エラーが発生した場合はなるべくなんというエラーになったかも報告してね。

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