
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も見ています
-
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
エクセルのセル最終行取得
Visual Basic(VBA)
-
VB.NETの配列にExcelから読み込んできたデータを格納したい
Visual Basic(VBA)
-
-
4
VB.netでのExcelデータの読み込み
Visual Basic(VBA)
-
5
VBからEXCELのセルの値を取得する方法
Visual Basic(VBA)
-
6
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
7
vb.netからエクセル関数書き込み
Visual Basic(VBA)
-
8
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
9
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
-
10
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
11
VB.net(2005)でエクセルの特定名称のシートを操作したい。
Visual Basic(VBA)
-
12
CloseとDisposeの違い
Visual Basic(VBA)
-
13
VBのReturnの使い方
Visual Basic(VBA)
-
14
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
15
Ctrl + Cなど複数の入力キーの感知
Visual Basic(VBA)
-
16
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
17
TextBoxでEnterキーを押すと、にあるButtonを押したのと同じ効果を出す方法
Visual Basic(VBA)
-
18
CSVから指定行だけを読み込み
Visual Basic(VBA)
-
19
テキストファイルの最終行を消すには。
Visual Basic(VBA)
-
20
DataGridの中身をDataSetにテーブルとして保存する方法 (初心者)
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS2010で直近の日付を取得...
-
COBOL数値転記の仕様
-
【VB.NET】Excelの最終行までの...
-
T-SQL 一件のみのデータ取得に...
-
Python 繰り返し文による出力方法
-
VBA 重複データの削除方法
-
Smartyのプラグインについて
-
TextBox内の改行
-
ユーザーフォームがエラーにな...
-
エクセルのセル最終行取得
-
UNIX C メモリ領域
-
エクセル重複チェックをしなが...
-
エクセルVBAで時計のリアルタイ...
-
ActiveReportでデータが0件の場...
-
別ブックのデータベースを検索...
-
DataGridで選択した行をクリッ...
-
ストアアプリ開発 C# ListView...
-
配列の中の最大値とそのインデ...
-
エクセルマクロで文字列にメタ...
-
VBA 変数名に変数を使用したい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# DataTableに最後に追加した...
-
【C#】textBoxの指定行のデータ...
-
VBAコンボボックスの内容が反映...
-
VBAでアクセスDBからデータの取...
-
【VB.NET】Excelの最終行までの...
-
XMLでデータとして画像を指定す...
-
VB2010で、選択した系列を最前...
-
Excel VBAで1週間毎にカテゴリ...
-
COBOL数値転記の仕様
-
【ExcelVBA】値を変更しながら...
-
非同期のプロセス間通信(パイプ...
-
「Nullの使い方が不正です」の...
-
エクセルのマクロ コンボボッ...
-
ExcelVBAで戻り値を返すには
-
Excel VBAでフォルダ内の全テキ...
-
ListViewで表示されたデータの...
-
クリスタルレポートでレコード...
-
Excel VBA で日付を4ケタの数値...
-
ActiveReportのdetailをデータ...
-
アクセスでウェブ上のデータを...
おすすめ情報