###前提・実現したいこと
VBAでアクティブじゃないシートから値を取得するのに苦戦しています。
今、「sheet1」と「sheet2」という二つのシートがあり、「sheet1」をアクティブにした状態で「sheet2」のセルの値を取得し配列に格納するというようなことをしようと考えています。
ちなみに「sheet2」には下記のような情報がA1
から入っています。
name | ||
---|---|---|
taro | ||
hanako |
これらのセルの内容を、下記関数を使用して取得します。
###セルの値を配列として返す関数
vba
1Function getNameList() 2 Dim namesSheet As Worksheet 3 Set namesSheet = Worksheets("names") 4 5 Dim names() As String: ReDim names(0) ' Index 0で初期化 6 7 Dim i 8 For i = 2 To namesSheet.Cells(Rows.count, 1).End(xlUp).Row 9 names(UBound(names)) = Cells(i, 1) 10 ReDim Preserve names(UBound(names) + 1) ' 拡張 11 Next 12 13 ReDim Preserve names(UBound(names) - 1) 14 15 getNamesList = names 16End Function
「sheet1」をアクティブにした状態で下記のように実行すると、値が取得できず何も表示されません。
配列の中身を取得して表示
vba
1Sub main() 2 ' 名前一覧を取得 3 Dim names As Variant 4 Dim name As Variant 5 names = getNamesList.getNamesList 6 7 ' 名前の表示 8 For Each name In names 9 Debug.Print (name) 10 Next name 11End Sub
「sheet1」をアクティブにしたまま「sheet2」の値を配列として取得するにはどのような方法があるのでしょうか?
ご回答を頂けると非常に助かります_(..)

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/31 01:15