[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートメーションエラーについて』(ナナ)
いつもお世話になっております。
以前こちらの掲示板で質問させていただき以下のリンク先でコードを作っていただきました。
https://www.excel.studio-kazu.jp/kw/20171213102223.html
Excel2003,2010の環境では問題なく動作するのですが、2016の環境だとオートメーションエラーです。と表示されて
Set AR = CreateObject("System.Collections.ArrayList")
ここで止まってしまいます。
ネットで色々調べてセキュリティレベルを下げたり試してみましたがうまくいきません。原因がわかる方いらっしゃいますか?
よろしくお願い致します。
以下コード全文
Private Sub CommandButton1_Click()
Dim AR As Object
Dim i As Long
Set AR = CreateObject("System.Collections.ArrayList")
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
AR.Add i
End If
Next i
For i = 0 To AR.Count - 1
Sheets("Sheet1").Rows(AR(i) + 2).Cut Destination:=Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
Next i
For i = AR.Count - 1 To 0 Step -1
Sheets("Sheet1").Rows(AR(i) + 2).Delete
Next i
ListBox1.RowSource = "Sheet1!A2:C" & Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
Set AR = Nothing
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
ArrayListをDictionaryに変更したら? 動作の検証はしていません。
Private Sub CommandButton1_Click()
Dim dic As Object
Dim i As Long
Set dic = CreateObject("Scripting.Dictionary")
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then dic(i) = Empty
Next i
For i = 0 To dic.Count - 1
Sheets("Sheet1").Rows(dic.keys()(i) + 2).Cut Destination:=Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
Next i
For i = dic.Count - 1 To 0 Step -1
Sheets("Sheet1").Rows(dic.keys()(i) + 2).Delete
Next i
ListBox1.RowSource = "Sheet1!A2:C" & Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
End Sub
(seiya) 2017/12/29(金) 12:28
ArrayList は環境に依っては使用できない場合があります。 .NET Frameworkがインストールされている必要があります。
場所 Win 10 C:\Windows\Microsoft.NET\Framework (seiya) 2017/12/29(金) 13:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.