Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4349 / 13644 ツリー ←次へ | 前へ→

【57160】CSVデータをACCESSに移行 satsuki 08/7/29(火) 18:46 質問[未読]
【57161】Re:CSVデータをACCESSに移行 neptune 08/7/29(火) 22:50 発言[未読]
【57162】Re:CSVデータをACCESSに移行 satsuki 08/7/29(火) 23:42 質問[未読]
【57163】Re:CSVデータをACCESSに移行 かみちゃん 08/7/30(水) 0:21 発言[未読]
【57166】Re:CSVデータをACCESSに移行 satsuki 08/7/30(水) 14:19 お礼[未読]

【57160】CSVデータをACCESSに移行
質問  satsuki  - 08/7/29(火) 18:46 -

引用なし
パスワード
   こんにちは、Satsukiと申します。
どなたかご教示お願いいたします。

CSVファイルで下記のようなリストがあり、各タイトルごとにテーブルを分けてACCESSに出力しようとしています。

1.店別来店数
A店  550
B店  360
C店  480

2.店別製品別売上数
A店
 製品1 15
 製品2 26
B店
 製品1 28
 製品3 45
C店
 製品2 35
 製品4 12

3.店別個人別売上数
A店
 製品1 
  担当A 6
  担当B 9
 製品2
  担当B 6
  担当C 20 
B店
 製品1 
  担当D 9
  担当E 15
  担当F 4
 製品3
  担当D 24
  担当E 21
C店
 製品2
  担当G 7
  担当H 12
  担当F 16
 製品4 
  担当G 2
  担当H 7
  担当F 3
 

Title(0) = "1.店別来店数"
Title(1) = "2.店別製品別売上数"
Title(2) = "3.店別個人別売上数"

TableName(0) = "raiten"
TableName(1) = "seihinbetsu"
TableName(2) = "kojinbetsu

TitleName = Title(0)
InputTable = TableName(0)

For〜next文の間で下記のように1行ずつ下へフォーカスをずらし、
  Cells(j, 1).Activate

下記のように新しいタイトルが出てきたら、それぞれ変数にタイトルとテーブル名を入れるようにしたいのですが、配列変数を他の変数に入れることができないようです。何かよい方法はありますでしょうか?
 
  If ActiveCell.Value = Title(i + 1) Then
    TitleName = Title(i + 1)
    InputTable = TableName(i + 1)
    i = i + 1
  End If

テーブル名を可変にするコード  
  strSQL = "select * from InputTable"

【57161】Re:CSVデータをACCESSに移行
発言  neptune  - 08/7/29(火) 22:50 -

引用なし
パスワード
   ▼satsuki さん:
こんにちは

良く見てませんが、取りあえず、変数の扱いが変
>テーブル名を可変にするコード  
>  strSQL = "select * from InputTable"
                    ↑
              これ本当は変数ですよね?               

【57162】Re:CSVデータをACCESSに移行
質問  satsuki  - 08/7/29(火) 23:42 -

引用なし
パスワード
   ▼neptune さん:
レスありがとうございます。
やはり変数の扱いが変なのですよね。
なんとかして、テーブル名を入れ替えていきたいという苦肉の策で、配列に入れたテーブル名を順番にInputTableという変数に入れてみたんですが、受け付けてもらえませんでした。
何かよい方法はありませんでしょうか?

>▼satsuki さん:
>こんにちは
>
>良く見てませんが、取りあえず、変数の扱いが変
>>テーブル名を可変にするコード  
>>  strSQL = "select * from InputTable"
>                    ↑
>              これ本当は変数ですよね?

【57163】Re:CSVデータをACCESSに移行
発言  かみちゃん  - 08/7/30(水) 0:21 -

引用なし
パスワード
   こんにちは。かみちゃん です。

横から失礼します。

>やはり変数の扱いが変なのですよね。
>なんとかして、テーブル名を入れ替えていきたいという苦肉の策で、配列に入れたテーブル名を
>順番にInputTableという変数に入れてみたんですが、受け付けてもらえませんでした。

受け付けてもらえないというのは、どういう意味でしょうか?

>>>  strSQL = "select * from InputTable"
>>                    ↑
>>              これ本当は変数ですよね?

neputuneさんのこのコメントは、変数を" "で囲ってしまっているからという指摘
だと思います。

ちなみに以下のコードで、その違いを確認してみてください。

 TableName(0) = "raiten"
 InputTable = TableName(0)
 MsgBox "select * from InputTable"
 MsgBox "select * from " & InputTable

変数を" "で囲うと、文字列とみなされます。

【57166】Re:CSVデータをACCESSに移行
お礼  satsuki  - 08/7/30(水) 14:19 -

引用なし
パスワード
   ▼かみちゃん さん
レスありがとうございます。
"select * from " & InputTable
の形式に直したらできました。
ありがとうございました。

>こんにちは。かみちゃん です。
>
>横から失礼します。
>
>neputuneさんのこのコメントは、変数を" "で囲ってしまっているからという指摘
>だと思います。
>
>ちなみに以下のコードで、その違いを確認してみてください。
>
> TableName(0) = "raiten"
> InputTable = TableName(0)
> MsgBox "select * from InputTable"
> MsgBox "select * from " & InputTable
>
>変数を" "で囲うと、文字列とみなされます。

4349 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free