• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセス2010 VBA 指定セルのインポート)

【初心者向け】VBAを使ってアクセス2010で指定セルのインポートする方法

このQ&Aのポイント
  • アクセス・エクセル2010を使用して指定セルのインポートを行いたい初心者の方へ。ダイアログを表示させ、取り込みファイル(.xls)を指定してインポートする方法や、指定したファイルと同じフォルダ内にあるファイルを全てインポートする方法、さらにフォームのテキストを使って範囲指定を行う方法などを詳しく解説しています。
  • アクセス・エクセル2010を使用して指定セルのインポートする方法を初心者の方に分かりやすく解説します。ダイアログを表示させ、取り込みファイル(.xls)を指定してインポートする手順や、同じフォルダ内にあるファイルを全てインポートする手順、さらにフォームのテキストを使って範囲指定を行う方法までを具体的に説明しています。
  • アクセス・エクセル2010を使い、指定セルのインポートを行いたい初心者の方への解説です。ダイアログを表示させ、取り込みファイル(.xls)を指定してインポートする方法や、同じフォルダ内にあるファイルを全てインポートする方法、さらにフォームのテキストを使って範囲指定を行う手順などについて詳しく説明しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.3

こんにちは なんか冗長で変なコードになっちゃいますけど、 Sub test_1()   Dim f As Object   Dim b As Object   Dim c As Object   Dim d As Object   Dim t As Variant   Dim e As Object   Dim p As String   Dim i As Long   Dim sSql As String   Dim フォームのテキスト As String      Set e = CreateObject("Excel.Application")   t = e.GetOpenFilename("Excel Files (*.xls*), *.xls*")   If t = False Then Exit Sub      フォームのテキスト = "K7:W78"      Set f = CreateObject("Scripting.FileSystemObject")   p = f.GetParentFolderName(t)   Set d = f.GetFolder(p)   Set b = d.Files   On Error Resume Next   sSql = "DROP TABLE テストテーブル "   CurrentProject.Connection.Execute CommandText:=sSql   sSql = "DROP TABLE 一時テーブル "   CurrentProject.Connection.Execute CommandText:=sSql   On Error GoTo 0   For Each c In b     If LCase(f.GetExtensionName(c)) Like "xls*" Then       If i = 0 Then         DoCmd.TransferSpreadsheet acImport, , "テストテーブル", c, True, フォームのテキスト         sSql = "ALTER TABLE テストテーブル ADD COLUMN ファイル名 VarChar(50);"         CurrentProject.Connection.Execute CommandText:=sSql         sSql = "UPDATE テストテーブル SET ファイル名='" & f.GetFileName(c) & "';"         CurrentProject.Connection.Execute CommandText:=sSql         i = i + 1       Else         On Error Resume Next         sSql = "DROP TABLE 一時テーブル "         CurrentProject.Connection.Execute CommandText:=sSql         On Error GoTo 0         DoCmd.TransferSpreadsheet acImport, , "一時テーブル", c, True, フォームのテキスト         sSql = "ALTER TABLE 一時テーブル ADD COLUMN ファイル名 VarChar(50);"         CurrentProject.Connection.Execute CommandText:=sSql         sSql = "UPDATE 一時テーブル SET ファイル名='" & f.GetFileName(c) & "';"         CurrentProject.Connection.Execute CommandText:=sSql         sSql = "INSERT INTO テストテーブル SELECT * FROM 一時テーブル"         CurrentProject.Connection.Execute CommandText:=sSql         i = i + 1       End If     End If   Next   On Error Resume Next   sSql = "DROP TABLE 一時テーブル "   CurrentProject.Connection.Execute CommandText:=sSql   On Error GoTo 0   e.Quit   Set e = Nothing End Sub

noname#228034
質問者

補足

ありがとうございます!ほぼイメージした動きでした。 ただ1点、変動するインポート範囲を設定するために、 フォームのテキストボックス(txt)を用いて範囲指定を変動できるようにしたいのですが そこのコーディングも教えていただけないでしょうか。 ここまで組んでいただいた上、ご面倒なお願いで申し訳ありませんが、 よろしくお願いします!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.4

こんにちは フォームのテキスト = "K7:W78" の"K7:W78"の部分を frm.text1.textとかに変更するとかです。

全文を見る
すると、全ての回答が全文表示されます。
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.2

こんにちは 「2.1で指定したファイルと同じフォルダ内にあるファイル(.xls)を全てインポート」 全てのファイルのデータを一つのテーブルに集約するのですか? それとも、一つのファイルに対して一つのテーブルを作成していくのですか?

noname#228034
質問者

補足

できれば、1つのテーブルでマージしたいです。 ただ、インポート基ファイル名などをフィールドで持てると良いのですが、可能でしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは 複数のExcelのデータを1つのテーブルに取り込むのですか? 取り込むテーブルのフィールド構成 取り込むExcelの実際のセル範囲の例 はどうなりますか?

noname#228034
質問者

補足

エクセルとしては、 7行目にフィールド名になるテキスト 今月は、K列~W列までを適用としています。 アクセス(テーブル)としては、 K列~(7行目)をフィールド名として K8~(今回は)W(の際下段)をフィールド値としたいです。 フィールド1(K列):項目名(にしたいフィールドなので)=テキスト フィールド2~13(L~W列):値が入るので、名称は仮置きでも構いません=倍精度浮動小数点型 です。 ※今月はW列まで(フィールド13)までが適用ですが、次月以降はX列~(フィールド14以降)も適用の可能性もあります。 今月のフォーム:テキスト値としては、「K7:W78(もしくはK8~W78)」を取り込み対象として設定したいです。 よろしくお願いします!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • AccessでExcelファイルをインポートするとエラーが・・・

    教えてください!! Excelファイルの書式は表示形式(標準)でMSゴシック 、38列1900行くらいのデータです。 これをインポートすると、1列だけインポートエラーになります。 調べてみると、その列だけデータ型が「倍精度浮動小数点型」になっています。これが関係あるのでしょうか? なぜ、他はテキスト型になるのに、これだけこんな型になってしまうか不思議です。直したくてもインポートウィザードでは、グレーになっていて修正できません。

  • Access VBA インポート シート指定

    AccessのVBA を用いて、ExcelからAccessへデータを インポートする際、ダイアログボックスを表示させて Excelのファイルを選択させるようにしています。 これをシート名まで指定させる事は可能でしょうか? ◆シートは枚数が固定されず、都度かわります。 ◆インポートしたいシート数も都度かわります。 ◆1sheet = 1 テーブルにしたいです。 ◆1度の動作で、1sheetのインポートでも、複数でもかまいません。 ◆できれば、ダイアログでファイルを選択した流れで シートまで選択される方法が望ましいです。 ◆Accessのテーブル名もテキストボックスで任意なものが 付けられるようにしたいです。 お知恵をお貸し下さい、何卒よろしくお願いいたします。

  • VBA で EXCELファイルをインポート

    VBAに詳しい方お助けください。VBAを使用して、データベースをつかってインポート(データベースファイルを開かずにデータの取り込み)を行いたいのですが良く分かりません。データベースは一つはCSVファイル、一つはXLSファイルです。取り込み先のEXCELファイルのSHEET1にCSVファイルのデータベース(SHEET1)、取り込み先のEXCELファイルのSHEET2にXLSファイルファイルのデータベース(SHEET1)とインポートするにはどのようなVBAの記述が必要ですか?色々と調べているのですがうまく行きません。EXCELは2003を使用しています。

  • Excel→Access VBAによるインポート

    1つのExcelファイルの複数のデータシートをAccess2000にインポートしたい。 【説明】 data.xlsという名前のExcel2000で作成したファイルがあり、その中に同じ書式(列)を 持ったSheetが20枚ほどあります。 それらのデータをAccess2000にインポートしたいのですが、 1.作業は毎月発生する。 2.ほかのユーザも出来るようにする。 などの理由から、マクロかVBAを使って自動化できればと考えています。 ぽちっとボタンを押すと、data.xlsのすべてのシートからデータをインポートし、 それぞれのSheet名がついたテーブルに格納されるというのが理想です。 フィールド名は固定ですので、あらかじめテーブルを作っておくことは出来ます。 Excelの各シートの上部数行は見出しやら説明文が書いてありますので、 インポートの際にその部分の行(5行分)を削除することが必要です。 当方VBAの知識はほぼ皆無ですので、やんわりご教示頂ければ幸いです。 よろしくお願いいたします。 (次回ネットに入るのは15日以降です)

  • 【Access2010】 数10億円のインポート

    txtファイルからAccess2010へ「40億円」をインポートしようとするとエラーになりました。  ファイル形式: 2002-2003形式(.mdb)  データ型: 数値型  フィールドサイズ: 十進型 ネットでいろいろ調べて、フィールドサイズを「倍精度浮動小数点型」してもダメ、データ型を「通貨型」にしてもダメ、お手上げ状態です。 唯一インポートできた方法はデータ型を「テキスト型」にした場合のみでした。 ファイル形式は社内の互換性の問題上2007形式(.accdb)にはできません。 テーブルに直接入力すれば入れることはできますが、毎回そんな面倒な作業はできません。 「数値型」のままインポートする方法はありませんか?

  • ACCESS2000ファイルのインポートについて

    ACCESS2000を使用しています。 ある指定のフォルダにある複数のEXCELファイルを、ACCESSに一括でインポートしたいです。 EXCELファイルは範囲指定を行います。(例えばb2:d100までインポートしたい) ブック名は部署名が入っており、シート名はどのブックも同一シート名です。 どのように行えばいいでしょか。 ご回答の程、どうぞよろしくお願いいたします。

  • AccessからVBAでExcellシートのインポート

    すみません。教えてください。 AccessVBAでエクセルのシートをインポートしたいのです。 いつも同じ行数ではありませんのでrange指定を埋め込むわけに行きません。 DoCmd.TransferSpreadsheet acImport, , "給与データ報告書", "c:\test\test.xls", True, "a1:p6000" でインポートできるのですが DoCmd.TransferSpreadsheet acImport, , "給与データ報告書", "c:\test\test.xls", True, "" range指定をしないとエラーになります。(出来ると書いてあるが) sheet1、ワークシート名とかの指定が出来ればと思い、いろいろ試してみたのですが出来ません。 宜しくお願いいたします。

  • エクセル関数VLOOKUPの範囲の一部をセルで指定

    ファイル名2103.XLSあるとして、その2103.XLSファイルとは別のファイル名集計.XLSに、その2103.XLSファイルから関数VLOOKUPでデータの値を返したい場合、式の範囲には普通は [2103.xls]Sheet1!$A$1:$B$10 と入力されますが、この範囲の一部分をセルで指定できないでしょうか。例えば、ファイル名集計.XLSのA1セルに文字列で"2103"と入力されているとしまして、式の範囲 [2103.xls]Sheet1!$A$1:$B$10 の2103部分を[A1.xls]Sheet1!$A$1:$B$10のような式は出来ないでしょうか。

  • Excelのデータ(数字)をテキスト型としてaccessにインポートする方法

    Excelの「セルの書式設定」を「文字列」にして、数字を入力し、accessで「インポート」すると「データ型」が「倍精度浮動小数点型」となって「1(2)」や「1&2」と入力した行がインポートできずerrorとなります(普通の数字はインポートできます)。Excelの書式設定を「ユーザ定義」→「@」としても同じです。またaccessでテーブルのデザインでそのインポートするフィルドを「データ型」としておいてインポート操作をしてもインポートされません。Excelを開きそのセルや行の書式設定を確認しましたが文字列となっています。どこが問題なのでしょうか? また正しくインポートできる方法を教えてください。 accessとExcelのバージョンは2003です。 よろしくお願いします。

  • Access97 Excelファイルのインポート

    はじめまして、こんにちわ。 早速ですが、質問させてください。 Access97で既存のテーブルにExcelファイルをインポートした際にエラーがでてインポートできないファイルがありました。その原因を調査している次第です。 Excelファイルは様々な担当者に作成いただく予定ですので、エラーの再現性を確認して、原因となる作業を予め禁止しておきたいと考えております。 (1)ファイル→外部データ取込→インポートからインポートするExcelファイルを選択し、インポートボタンを押したところ、『ファイル○○にアクセスできません。このファイルが存在するか、またファイルの形式が正しいか確認してください』と言うエラーが出ます。 実際にそのファイルは開けますし、同じように作成したファイルはインポートできるものもあります。 中身を全てコピーし、新規作成したExcelファイルに貼り付けて名前をつけて保存したものをインポートすると、問題なくインポートできました。 どういった作業をすると、上記エラーが出るようなファイルになってしまうのでしょうか。 (2)ファイル→外部データ取込→インポートからインポートするExcelを選択し、インポートボタンを押した後、ワークシートインポートウィザードで『先頭行をフィールド名として使う』をチェックすると、『先頭行にAccessフィールド名に使用できない文字が含まれています。』というエラーが出ます。 調べてみると、空白の列がフィールドとしてインポートされるようになっています。Excel上では何も表示されていない列で、その列を削除すればエラーがなくなります。 どういった作業をすると、空白の列や行がインポートされるようになってしまうのでしょうか。 お手数ですがよろしくお願い致します。

信用組合の出資金とは
このQ&Aのポイント
  • 信用組合利用や口座開設には出資金が必要ですが、出資金は預金とは異なります。
  • 出資金は、信用組合に対して行う一定額の投資です。
  • 預金は、口座に預けたお金を指し、出資金とは異なります。
回答を見る

専門家に質問してみよう