質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

2487閲覧

【ExcelVBA】ユーザー定義型に格納した配列の要素数を調べたい

MitsuhiroN

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/10/25 06:45

編集2018/10/25 06:47

ユーザー定義型の中に格納した配列の要素数を調べたいです。
開いた別ファイルから取得してきた値をシートに貼り付けるだけの処理なのですが、
TypeC、Dにはそれぞれ下位分類があるため(例:対応状況―<未対応/対応中/済>)、定義型の中で値を配列として格納しています。

それをテーブルに貼り付ける際、For文で横にペーストしたいのですが、UBoundで要素数を取り出すことができません
””エラー9 インデックスが有効範囲にありません""

↓以下コードになります

VBA

1--Class1-- 2Public TypeA As string 3Public TypeB as long 4Public TypeC as variant 5Public TypeD as variant 6'※CとDで配列の要素数が異なる 7 8 9--Module1-- 10※★でエラー 11Dim data as new Class1 12 13'値の取得 14With ActiveWorkbook.sheets(1) 15 data.TypeA = "hoge" 16 data.TypeB = 2 17 data.TypeC = Range("AQ8:BD8") 18 data.TypeD = Range("BE8:BJ8") 19end with 20 21'値の貼り付け 22With ThisWorkbook.sheets(1) 23 .Cells(1,1) = data.TypeA 24 .Cells(1,2) = data.TypeB 25 26 Dim i as long 27  ★for i = 1 to UBound(data.TypeC,1)  28 .Cells(1,3 +i-1) = data.TypeC(1,i) 29 next 30 Dim j as long 31 Dim startColumn as long 32 startColumn = .Cells(1,.Columns.Count).End(xlToLeft).Column +1 33 ★for j = 1 to UBound(data.TypeD,1) 34 .Cells(1,startColumn + j -1) = data.TypeD(1,j) 35 next 36 37※UBound(data.TypeC(1),1)試みたが同じエラー発生 38 39

※ローカルウィンドウ上、data -TypeCで展開すると
TypeC(1)
-TypeC(1,1)
-TypeC(1,2)..etc
と続いています。

基礎的な記法の質問のようにも思えますが、調べても見つけられませんでした。。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

★のところでエラーになる理由はわかりませんが、気になったところ。

Rangeの前に.が必要では。

VBA

1 'data.TypeC = Range("AQ8:BD8") 2 'data.TypeD = Range("BE8:BJ8") 3 data.TypeC = .Range("AQ8:BD8") 4 data.TypeD = .Range("BE8:BJ8")

UBoundの対象にするのは2次元目かと。

VBA

1'for i = 1 to UBound(data.TypeC,1) 2for i = 1 to UBound(data.TypeC,2)

TypeDも同様。

投稿2018/10/25 07:03

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MitsuhiroN

2018/10/25 07:11 編集

迅速な回答ありがとうございます!!! 次元数2で解決しました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問