• 締切済み

エクセルの各シートをアクセスで縦に結合するには

お世話になります。 1つのエクセルファイルに同じ書式のシートが複数あります。1行目がタイトル行で2行目以降にデータが入っています。 この各シートのA2セルからM列の最終行までの範囲のデータを順番にアクセスに取り込み一つのテーブルを作成したい。各シートのデータを縦に結合するイメージです。行数は各シートバラバラです。また各シートの列数はM列より多いが必要なのはM列までです。 最初のシートだけタイトルが必要なのでA1セルから取り込みます。 縦に並べるとエクセルの最大行数を超える可能性があるので一旦エクセル上で縦に並べることは考えません。 アクセスに取り込んだ際、主キーになる項目がないので左端に1からの連番の列を作ります。 以上のことをするためにはどのようにすれば良いのでしょうか?シートがかなりあるので自動化できればうれしいです。 よろしくお願いします。

  • HGK
  • お礼率69% (138/199)

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

突っ込みどころ満載の危ういコードです Accessから開いてます。 Sub test(xlsName As String) Dim xls As Object Dim wkb As Object Dim sht As Object Dim shtCount As Integer Dim i As Integer Set xls = CreateObject("excel.application") Set wkb = xls.Workbooks.Open(xlsName) 'For Each sht In wkb.Worksheets ' Debug.Print sht.Name 'Next shtCount = wkb.Worksheets.Count wkb.Close , acSaveNo Set xls = Nothing 'Stop For i = 1 To shtCount DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _ "testTable", xlsName, True, "sheet" & i & "!A:M" Next End Sub 連番はオートナンバーフィールドを後で追加 危惧するところ。 空のシートがあった場合。 セルの行が虫食い状態だった場合。 セルの中に適当でない部分が(数値型列中に文字など)があった場合。 エクセルの並び順は保障されているのか・・などなど 正直やったこと無いので・・・

HGK
質問者

お礼

ありがとうございました。

関連するQ&A

  • エクセルの各シートをアクセスで結合するには

    お世話になります。 1つのエクセルファイルに同じ書式のシートが複数あります。1行目がタイトル行で2行目以降にデータが入っています。 この各シートのA2セルからM列の最終行までの範囲のデータを順番にアクセスに取り込み一つのテーブルを作成したい。各シートのデータを縦に結合するイメージです。行数は各シートバラバラです。また各シートの列数はM列より多いが必要なのはM列までです。 最初のシートだけタイトルが必要なのでA1セルから取り込みます。 縦に並べるとエクセルの最大行数を超える可能性があるので一旦エクセル上で縦に並べることは考えません。 アクセスに取り込んだ際、主キーになる項目がないので左端に1からの連番の列を作ります。 以上のことをするためにはどのようにすれば良いのでしょうか?シートがかなりあるので自動化できればうれしいです。 空シートはありませんが、空白のセルはあります。 よろしくお願いします。

  • エクセル:複数シートの一括処理

    お世話になります。 エクセルで1つのブックに複数のシートがあります。 書式は同じですが行数がそれぞれ違います。 A列で、データが入力されている一番下のセルの次の行から、エクセルの最終行である65536行までの行を全て選択して「削除」をしたいのです。(行の削除)しかも全シート一括で。 A列でデータが入っている一番下のセルがA550だった場合、551行~65536行までを全て選択→削除を行う。 これらの作業をするためのマクロを教えてください。

  •  ExcelのSheet数の限界

     ExcelのSheet数の限界  素朴な疑問なのですが、Excelでは、Sheet上の列数はIV列の256、行数は65536行目が最大ですが、Sheetは最大で何枚まで作成可能なのでしょうか。 (Sheet65531までは確認済み)

  • EXCELで分かれたシート間の同一データ行を自動削除して結合したい

    EXCELで、シート1、シート2に分かれたデータがあります。 それぞれのシート間でC列~F列の値が重複している行、シート1側のG列の数値がマイナス になっている行を自動で削除してからデータを1つのシートに結合する方法を探しています。 条件は、シート1側の重複データ行のみを削除し、シート2側のデータが必ず残る方法であ る必要があります。G列のマイナス行を削除するのはシート1側のみです。 シート1がA列~I列、約3万行、シート2がA列~K列、約1千行くらいです。 シート2側のみJ列~K列(数値データが入っています)が存在しますが、シート1側は空欄です。 列の数は変わりませんが、行数が都度変動しますのでマクロでコピー先のセル位置を決め打ちする 事が出来ません。 1つのシート上で重複するデータを削除する方法は見つける事が出来たのですが、残す方のデータ が指定出来ないのと、複数のシート上の重複データを削除する方法が見つかりませんでした。 何か良い方法がありましたら、ご教授下さい。

  • Excel(2010)で結合セル内で一部縦書

    Windows7、Excel(2010)で3つのセルを結合して3行の文書で2行目だけを縦書にしたいのですが、フォントの前に「@」をつけて縦書にしても180度回転(天地逆)になるだけで、縦方向に向いてくれません。 実例としては以下の様な文字列です。 1999.12  ~ ←これを縦方向にしたい 2013/10 セルを結合しなければ良い話なのですが、結合したままでデータを作成する必要があるので、どなたかご存知でしたらご教示をお願いします。

  • エクセル シートに表をまとめる

    良い方法を教えてください。 まず、ある専用のソフトからデータを抜きエクセルにおとします。 そのデータが小分けされていて、表の形式で、金額等が記載されているのですが、8列6行くらいの表でいくつもデータがあります。 しかも1シートに1つの表しかなく、何個もシートがある状態です。 それを、切り取りして張り付けして…と1シートにまとめているのですが、計算式やマクロなどを使用して、データを抜いたら1シートにまとまるようにしたいのです。 何か良い方法はないでしょうか?? データは、毎月抜きますが、データの表の行数、列数は毎月同じです。 宜しくお願いします。

  • Excelの列数を追加する方法は

    Excelのシートの様式より行数はあまり必要ないが列数がもっと欲しい場合の質問です。セル数の縦横の割合を調整して表を1シートとして作成することができるでしょうか。つまり行を犠牲にしても列を追加する方法はあるでしょうか。またそれ以外で列数を拡張する簡単な方法はあるでしょうか。

  • アクセスへのインポートについて

    こんにちは。アクセスへインポートするエクセルファイルが 以下の構造になっており、どうした物か分からず困っており ます。 エクセルの1シート上にA列~IF列まで、行数は1~1200 行まで使用したデータがあります。 各セルに入力されているデータは、全て半角の文字10文字です。 又、不規則にブランクがあります。   A   B C ・・・・IF 1行目 123-456  456-321 213-901 2行目 ブランク ブランク 438-698 3行目 ブランク 361-465 ブランク  ・  ・ 1200行 このデータをアクセスのテーブル、1つのフィールドに 全部インポートするやり方が分からず、途方に暮れて おります。 アクセス、エクセルお詳しい方、何卒宜しくお願い致します。

  • エクセルのシートの大きさを変える

    エクセルは、シートの列や行の範囲を変更する。例えば、A~Dまでしか、表示できないようにする。最大の列数IVを大きくする。

  • Excel検索等関数

    Excelのデータで同じ列の中に番号が重複している値を探し出しなおかつ任意の行数に出す関数はありますか? Sheet1   |Sheet2   A  B |   A  B        1 あ 10 | 1 あ  10 2 あ 11 | 2 あ  11 3 い 21 | 3 い  21 4 う 22 | 4      ←A4:b4は、「い」が2行ないので空白        | 5 う  22        | 6      ←A6:b6も、「う」2行ないので空白 このように、縦の重複したセルを検索して、指定行数内の場合は、空白となる関数式があればお教えください。

専門家に質問してみよう