![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
VBでExcelを読み込こむ処理をしているのですが、指定の行から最終行までの各データを取得できる書き方を教えて頂きたくご質問しました。
■現在のコード(取得時)
dtCmd.CommandText = "SELECT * FROM [" & SheetName & "$A3:V3377] "
dtCmd・・・OledbCommand
SheetName ・・・シート名
上記でも読み込みは出来るのですが、これだとA3:V3377の範囲しか取得できず
もし範囲外のデータが来たときは、当然ですが読み込みできません。
これをどんな数のデータが来ても、ちゃんと最終行までを判断し、読み込んでくれるようにしたいです。
お手数ですがよろしくお願いいたします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
>Excelの読み込み時は、VBAと書き方は変わらないですかね??
先にも記載しましたが同じように書くとトラブルの原因にもなりかねません。
基本違うものと考えた方が良いとは思います。(それでもVC#で書くよりはVBAに近いかもですけど)
No.4
- 回答日時:
ならば6000行固定でも宜しいのでは?
ほぼ出来上がっての質問なら、一度お試しを
回答ありがとうございます。
ちょっとデバックしてた際に、致命的な設計バグが見つかったので、DataTableに格納する方法は今回は避けたいと思います。
Excelを読み込む際に、1行ずつ読んで、空白時が見つかったらそこで処理を辞めるという方法に切り替えようと思ったのですが、そちらの方法で何かアドバイスを頂くことは可能でしょうか?
急で申し訳ありません...
No.3
- 回答日時:
No.2です。
シートの最終行を取得するにはExcelブックを開いてって事になりますが、それならそもそもの ADODB 等による接続~データ取得って必要なくなるのでは?
それに書き方については特に閉じた後の変数の解放が重要になるかもですが、そこは宣言と合わせてVBAで作成する物とはレベルが違うんじゃないかと初級者は感じました。
まぁ、古いバージョンでやってたので今のバージョンでは楽に出来るって事での話でしょうけど。
回答ありがとうございます。
目星ですが、だいたい4000~5000行くらいで、1万行はいかないと思います。
あとDataTableに格納する方法を取ってますので、接続~データ取得は処理は外せないかなと思っています...
No.2
- 回答日時:
ところでExcel側にあるデータ行数っておおよその目星は立たないのでしょうか?
例えば1万行とか10万行とか。
別に指定した範囲より実際のデータ行数が少なかったとしても取り込みには問題にならないと思うのですが。
仮になったとしても WHERE句でとあるフィールドが空白でない場合とか指定しておけば宜しいのではないかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- Visual Basic(VBA) ExcelVBAの複数指定範囲の構文 2 2022/05/26 22:39
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルのセル最終行取得
Visual Basic(VBA)
-
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
VB.netでのExcelデータの読み込み
Visual Basic(VBA)
-
-
4
VB.NETの配列にExcelから読み込んできたデータを格納したい
Visual Basic(VBA)
-
5
VBからEXCELのセルの値を取得する方法
Visual Basic(VBA)
-
6
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
7
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
8
vb.netによるEXCEL値取得
Microsoft ASP
-
9
vb.netからエクセル関数書き込み
Visual Basic(VBA)
-
10
VB2010でExcelの行をコピーして挿入する
Visual Basic(VBA)
-
11
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
12
VBで既存エクセルシートを新規ブックにコピー
Visual Basic(VBA)
-
13
DataGridViewで指定したセルの値を取得
Visual Basic(VBA)
-
14
配列の重複する値とその個数を取得したい
Visual Basic(VBA)
-
15
VBで、String型のデータが、全角か、半角かを判断する関数は・・・
Visual Basic(VBA)
-
16
VB.NETで起動したExcelの閉じ方について
Visual Basic(VBA)
-
17
.NET上でエクセル上に罫線を引く
Visual Basic(VBA)
-
18
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
19
DataGridViewの各セル幅を自由に決め、その幅で固定したい
Visual Basic(VBA)
-
20
エクセルの列一括書き込み
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#】textBoxの指定行のデータ...
-
VBAでアクセスDBからデータの取...
-
VBAコンボボックスの内容が反映...
-
「Nullの使い方が不正です」の...
-
Excel VBAでフォルダ内の全テキ...
-
エクセルのCSV読み込みについて
-
MSFlexGrid 行選択状態
-
ADODBでの行番号の取得、もしく...
-
ListViewで表示されたデータの...
-
閉じたブックからデータを取得する
-
エクセル チャートを重ねても ...
-
エクセルVBA WEBからデータ取...
-
HTTPストリーミングによるデー...
-
Excel VBA で日付を4ケタの数値...
-
VB2008,DateTimePickerで指定す...
-
クリスタルレポートでレコード...
-
VB を用い帳票関係を作成
-
プログラムの考え方とDBの扱い...
-
非同期のプロセス間通信(パイプ...
-
XMLでデータとして画像を指定す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】値を変更しながら...
-
「Nullの使い方が不正です」の...
-
【C#】textBoxの指定行のデータ...
-
VBAでアクセスDBからデータの取...
-
XMLでデータとして画像を指定す...
-
【VB.NET】Excelの最終行までの...
-
C# DataTableに最後に追加した...
-
Excel VBAでフォルダ内の全テキ...
-
VBAコンボボックスの内容が反映...
-
COBOL数値転記の仕様
-
エクセルのセル最終行取得
-
エクセルデータをVBで検索でき...
-
アクセスでウェブ上のデータを...
-
batでレジストリキーから読み取...
-
富士通(汎用機)のAIMについて
-
非同期のプロセス間通信(パイプ...
-
エクセルのCSV読み込みについて
-
MSFlexGrid 行選択状態
-
java / jsp selectedについて
-
Excel VBA で日付を4ケタの数値...
おすすめ情報