VBA初心者です。
調べてみましたがどうにも情報に行きあたらなく、ご質問をさせていただきます。
添付のようなエクセル上の同一シート上にある3つの表をコピーし、VBAで同じ配列の各列として取り込みをしたいと考えております。
大分類、中分類、小分類のそれぞれの行は同じもののそれぞれの内容を記載しており、
できればこれらを同じ配列の1列目、2列目、3列目に格納をしたいと思っております。
これらの表が1つの表にまとまっていれば、
Dim 配列(1,10) as Variant
配列 =range("A1:C10")
で事足りると思うのですが、別々のためこの方法がとれません。
セル指定で行うことも考えましたが、データが10万行を超える場合もあるため、できれば避けたいと思っています。
各表を指定し、配列の1列目、2列目、3列目に一括して代入をご存じでしたらら、どうぞ教えていただきたいと思います。
どうぞよろしくお願いします。
No.1ベストアンサー
- 回答日時:
>VBAで同じ配列の各列として取り込みをしたいと考えております。
⇒次の様にB・D列も含めて一括で取り込んでは駄目でしょうか。
Dim a As Variant
a = Range("a1:E100000")
配列の記述は、a(1,1)等で可能です。(括弧内はCellsと同一です)
早速のご返答ありがとうございます。
なるほど!気が付きませんでした。
こちらが一番簡単かもしれませんね。
ただ、実際の作業用の表が間に5列あるのでできればそれぞれで代入できる方法もわかると非常にありがたいです。
No.4
- 回答日時:
初心者ということなので、たぶん配列に入れるという発想が適当でないと思うよ。
いままでエクセルのシートのデータを2次元配列に納めようという、解説例・使用例を見たことがない。
それが(ひょっとして)適当であるかもしれないが、その後何をしたいのかをあわせて考え無いと、質問としてはおかしいであろう。
初心者の思いついた路線で、それを実現するには式の、質問するものが結構多いが、その発想そのものの妥当性(ベターかどうか)をやりたい内容をはっきりと、終わり(その先したいこと)まで書いて別に質問したらどうかな。
ーー
質問表現が普通と違う点
>同一シート上にある3つの表を
同一列にあるデータは1つの表だというのか。それなら質問に注記すること。
同一行に、3列データがデータとして存在する関連性はないのか。
たまたま1万データをA列に、他のデータをCエ列の1万行に入力しただけか?
こういう使い方はあまりしない(そういうことをあまり知らないのかもしれないが)。だから注記するものだ。
ーー
エクセルの
http://www.excel-vba.net/excel-array-002.html
のようにあるが
Sub test02()
Dim StrArray(1, 2) As String
StrArray(0, 0) = "A0"
StrArray(0, 1) = "B0"
StrArray(0, 2) = "C0"
StrArray(1, 0) = "A1"
StrArray(1, 1) = "B1"
StrArray(1, 2) = "C1"
Range("a1:C2") = StrArray
End Sub
や
Sub test04()
Dim VarArray As Variant
VarArray = Range("a1").CurrentRegion.Value
MsgBox VarArray(2, 3)
MsgBox VarArray(1, 3)
End Sub
はできても
空白列を縮約して代入などできるはずがない。
多分配列に入ると、メモリ内処理なので、配列を再構成する(要素数分繰り返し)をして空白列対応要素を除くのも、大変な時間がかかるということはないだろう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Visual Basic(VBA) vbaで条件付き書式を設定したときの適用範囲について 1 2023/07/17 23:14
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelのINDEXとMATCH関数でスピ...
-
[エクセル]連続する指定範囲か...
-
エクセルで、絶対値の平均を算...
-
array関数で格納した配列の型を...
-
【VBA】ユーザーフォーム リス...
-
DataSetから、DataTableを取得...
-
Excelのセルの色指定をVBAから...
-
配列のSession格納、及び取得方...
-
配列がとびとびである場合の書き方
-
スプレットシートのGetTextにつ...
-
[VBA]改行入りのセルの値を配列...
-
C#で配列のフィールドを取得したい
-
Excel オートフィルタのリスト...
-
INDEX(D:D,L3)の意味は?
-
VBA listBoxについて
-
Excelのオートフィルタで抽出し...
-
ExcelVBAの配列変数で一括でセ...
-
.NET - 配列変数を省略可能の引...
-
表にフィルターをかけ、絞った...
-
VBA 配列に格納した値の平均の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルの色指定をVBAから...
-
array関数で格納した配列の型を...
-
ExcelのINDEXとMATCH関数でスピ...
-
[エクセル]連続する指定範囲か...
-
エクセルで、絶対値の平均を算...
-
VBA listBoxについて
-
配列がとびとびである場合の書き方
-
表にフィルターをかけ、絞った...
-
VBA 配列に格納した値の平均の...
-
[VBA]改行入りのセルの値を配列...
-
エクセルでエラーを無視して一...
-
iniファイルのキーと値を取得す...
-
二次元配列の中の各行の要素を...
-
SUMPRODUCT関数を用いた最小値
-
【VBA】ユーザーフォーム リス...
-
Split関数でLong配列に格納する...
-
【VBA】配列に数式を仕込む方法...
-
.NET - 配列変数を省略可能の引...
-
スプレットシートのGetTextにつ...
-
Excelのオートフィルタで抽出し...
おすすめ情報