- ベストアンサー
VBAでエクセルの複数の表を同じ配列に格納する方法
- VBAを使用して、エクセルの複数の表を同じ配列に格納する方法を教えてください。
- エクセルの複数の表を同じ配列に格納する方法について、VBA初心者の私にもわかりやすく教えてください。
- VBAを使って、エクセル上の複数の表を同じ配列に格納する方法について詳しく教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>VBAで同じ配列の各列として取り込みをしたいと考えております。 ⇒次の様にB・D列も含めて一括で取り込んでは駄目でしょうか。 Dim a As Variant a = Range("a1:E100000") 配列の記述は、a(1,1)等で可能です。(括弧内はCellsと同一です)
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
初心者ということなので、たぶん配列に入れるという発想が適当でないと思うよ。 いままでエクセルのシートのデータを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 はできても 空白列を縮約して代入などできるはずがない。 多分配列に入ると、メモリ内処理なので、配列を再構成する(要素数分繰り返し)をして空白列対応要素を除くのも、大変な時間がかかるということはないだろう。
お礼
ご返答ありがとうございます。 質問にいろいろと不備がありましたようで失礼致しました。 素人ゆえ、ご容赦くださいますと幸いです。
- n-jun
- ベストアンサー率33% (959/2873)
データを別のシートに隙間なく並べて配列に取込み、 使った別シートを削除するって言う方法もあるかも。
お礼
ご返答ありがとうございます。 そうですよね、そちらが一番シンプルですよね。 ありがとうございます。
- MasMo
- ベストアンサー率45% (5/11)
私でしたら、B列D列を削除してから一括読み込みをして、その後に列を挿入して元に戻します。
お礼
ご返答ありがとうございます。 他の列をできればいじりたくなかった関係でその部分だけ配列に入れられないかな、と思っていました。 こちらの方法も有効ですね。 ありがとうございます。
お礼
早速のご返答ありがとうございます。 なるほど!気が付きませんでした。 こちらが一番簡単かもしれませんね。 ただ、実際の作業用の表が間に5列あるのでできればそれぞれで代入できる方法もわかると非常にありがたいです。