A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
再びstorkです。
追加クエリです。
30列くらいなら列名を手で変えながら30回追加クエリをやったほうが早いでしょう。エクセルをインポートする際に列名を1、2、...と入力しやすい名前を付けておくとやりやすいでしょう。
VBAのループで上記のクエリを実行する手もありますが、手作業でやったほうが早いと思いますよ。
それぞれのクエリを保存しておけばあとで再実行も出来ます。
No.3
- 回答日時:
#1,2です。
まず、Excelデータのバックアップをとってください。
で、コピーのデータでやってみてください。
まず、見出しの行を削除して、データだけの状態にしてください。
そして、VBEの画面を開いてください。(Excelの画面でAlt+F11キー)
標準モジュールにしたのコードを貼り付け、修正してください。
1. 最大行数は「300行」、最大列数はコード・品名あわせて「30列」で一応設定してありますので、最初の方のConst行に設定してある数値を、実状にあわせて書き換えてください。
また、最大列数は、
品名とコードが対になっているはずですから、
当然ですが、必ず偶数になるようにしてください。
また、最大行数×(最大列数/2)が、
Excelの最大行数65536を越えないようにしてください。
2. シート名は一応Sheet1にもとのデータ、そして加工後のデータがSheet2に出力されるようにしてありますので、これもConst行を実情に応じて書き換えてください。
できあがったデータは、Sheet2に見出しなしの状態で出力されますので、これをアクセスにインポートしてください。
Option Explicit
Sub test()
'lngRow * lngColが,65536を越えないよう注意
Const lngRow As Long = 300 '最大の行数
Const lngCol As Long = 30 '最大の列数(偶数)
Const strSheet1 As String = "Sheet1" 'シート名(もとデータ)
Const strSheet2 As String = "Sheet2" 'シート名(加工データ)
Dim i As Long
'1列につなぐ
For i = 0 To Int(lngCol / 2) - 1
Sheets(strSheet1).Select
ActiveSheet.Range(Cells(1, i * 2 + 1), Cells(lngRow, i * 2 + 2)).Copy
Sheets(strSheet2).Cells(lngRow * i + 1, 1).PasteSpecial
Next i
'ソート
Sheets("Sheet2").Select
Columns("A:B").Select
Selection.Sort _
Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlNo, _
OrderCustom:=1, _
Orientation:=xlTopToBottom
End Sub
No.2
- 回答日時:
#1です。
そういうことですか。
基本的にExcelで加工してしまった方が、アクセスでどうにかしようとするより絶対楽だと思いますので、その方向で考えましょうか。
Excelにもマクロ(VBA)がありますので、その機能を使えば手作業の時のようにデータが違うということはないと思いますよ。
また質問になってしまいますが、以下の補足を願えますでしょうか。
1. Excelのデータは1行のデータですか?
2. 列は全部で何列あるのですか?
3. 「CD」はコードのことだと思いますが、数値でしょうか?文字でしょうか?
4. すべての品名に対してCDは入力されていますか?
5. Excelのデータの最初の行に、「品名 CD 品名 CD・・・」といった「見出し」の行はありますか?それとも、1行目から、入力されているのは「データ」だけでしょうか?
この回答への補足
いりいろすみません
1.Excelのデータは300行ほどあります
2.データーは最大で30列ほどあります(全てデーターが30列あるわけではありません
3.「CD」はコードのことで数値型です
4.すべての品名に対してCDを入力しています
5.Excelのデータの最初の行に、「品名 CD」の見出しはついています
以上どうか宜しくお願い致します
No.1
- 回答日時:
>エクセルのデーターを加工せず
Access上で加工したいのでしょうか?
Excelのデータを加工してから取り込んだ方が簡単かと思いますが。こだわりがあるのでしょうか?
>イベントプロチャジャーで
イベントプロシージャのことでしょうか?
だとしたら何のイベントですか?
それともマクロのことをおっしゃっているのでしょうか?
この回答への補足
すみません
説明不足で
エクセルで加工しようとしたのですが
漏れがあったりデーターをかぶせて消したりとやっぱり
加工すると元データーとちっがてしまうのでイベントプロシージャ
で・・とおもったのですが。・・・よく考えたら
マクロですね。すみません
何かいい方法がありましたらお願い致します
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで日付から日にちを削...
-
エクセルで1列に500行並んだデ...
-
excel:別シートの値を飛び飛び...
-
複数の条件に合う行番号を取得...
-
Excelの30個ずつの平均値の出し方
-
エクセルマクロ 重複しない値...
-
エクセルで、重複データを除外...
-
エクセル2016にて、行挿入&コピ...
-
Excelで2行単位のソートの出来...
-
Excel差し込み印刷:データが表...
-
Excel 列データのランダムな並...
-
エクセルで1つの会社名に対して...
-
Excelでデーターが多いので、平...
-
Countifよりも早く重複数をカウ...
-
不要な行を消したい
-
エクセルVBA C列に特定の文字列...
-
重複データの個数別を集計した...
-
VBA 大きなtxtテキストファ...
-
本日の日付を超えているものを...
-
エクセル関数について aかつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで日付から日にちを削...
-
エクセルで1列に500行並んだデ...
-
複数の条件に合う行番号を取得...
-
Excelで2行単位のソートの出来...
-
excel:別シートの値を飛び飛び...
-
Excelで2つのデータの突合せを...
-
Excelの30個ずつの平均値の出し方
-
Countifよりも早く重複数をカウ...
-
エクセルで、重複データを除外...
-
VBA 数式を最終行までコピー
-
エクセル2016にて、行挿入&コピ...
-
エクセルVBA C列に特定の文字列...
-
エクセルで横並びの複数データ...
-
エクセルで1つの会社名に対して...
-
VBA 大きなtxtテキストファ...
-
500行の中から、多い順に抽出す...
-
【エクセル】1列内に複数ある同...
-
エクセル~空白のセルのある行...
-
Excelの関数でこんな処理ができ...
-
Excel VBA 【QueryTables.Add】...
おすすめ情報