質問するログイン新規登録
VBA

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

Q&A

解決済

1回答

1006閲覧

[VBA]範囲を複数選択したデータを一つの配列に格納する方法

sdnco

総合スコア21

VBA

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

1グッド

0クリップ

投稿2023/03/14 08:48

編集2023/03/14 09:13

1

0

実現したいこと

VBAにて、範囲を複数選択したデータを一つの配列に格納したいです。

前提

エクセルシートに、以下のデータが入力されているとします。
**・セルA1には"テスト1"
・セルA2には"テスト2"

・セルA4には"テスト4"
・セルA5には"テスト5"**

セルA1:A2を範囲1、セルA4:A5を範囲2とします。
範囲1および範囲2をどちらも選択した状態で、該当のソースコードを実行することで、選択した2つの範囲のデータを配列に格納しようとしました。

発生している問題・エラーメッセージ

ですが、配列に格納されたのは範囲1の"テスト1"と"テスト2"のみでした。。

なぜ範囲2の"テスト3"と"テスト4"は格納されなかったのでしょうか?
原因分かる方いましたらご教示いただけないでしょうか?
初心者なので、、初歩的な質問でしたら申し訳ないです。

該当のソースコード

VBA

1Dim arr As Variant 2 3arr = Selection
tatsu99👍を押しています

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

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

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

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

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

jimbe

2023/03/14 09:06

VBA のコードの質問なら、 java や c 関係のタグは付けないでください。
guest

回答1

0

ベストアンサー

>なぜ範囲2の"テスト3"と"テスト4"は格納されなかったのでしょうか?
そのような仕様だからだと思いますが、
以下のようにすれば、選択した範囲の値がすべて取得できます。

VBA

1 Dim arr() As Variant 2 Dim r As Range 3 Dim i As Long: i = 0 4 For Each r In Selection 5 ReDim Preserve arr(i) 6 arr(i) = r.Value 7 i = i + 1 8 Next 9

投稿2023/03/14 11:44

tatsu99

総合スコア5540

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問