[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートメーションエラーについて』(ナナ)
いつもお世話になっております。
以前こちらの掲示板で質問させていただき以下のリンク先でコードを作っていただきました。
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.