アプリ版:「スタンプのみでお礼する」機能のリリースについて

Office97使用のシステム管理初級者です。
accessのクエリーを利用して以下のようなシステムを作ろうと思っているのですが、行き詰っています。

(1) 特定のデータ(複数)を抽出
(2) 既に用意しているexcelの任意の位置にデータを移管
(3) excelのブックを別名にてフロッピーに保存

(1)は何とかできたのですが、(1)によって抽出できたデータを任意のexcelに移管する時、最初の1データしか移管できなくて困っています。(次のようなものです・・・。)

Private Sub エクセル起動_Click()
On Error GoTo Err_エクセル起動_Click

Dim oApp As Object

Set oApp = CreateObject("Excel.Application")
oApp.Visible = True
'Only XL 97 supports UserControl Property
On Error Resume Next
oApp.UserControl = True

oApp.Workbooks.Open FileName:="D:\****\123.xls"

oApp.range("b4").Value = Me![1]
oApp.range("c8").Value = Me![2]
oApp.range("d8").Value = Me![3]
oApp.range("e8").Value = Me![4]
oApp.range("f8").Value = Me![5]
oApp.range("g8").Value = Me![6]
oApp.range("h8").Value = Me![7]
oApp.range("i8").Value = Me![8]
oApp.range("j8").Value = Me![9]



Exit_エクセル起動_Click:
Exit Sub

Err_エクセル起動_Click:
MsgBox Err.Description
Resume Exit_エクセル起動_Click

End Sub

それぞれの行にズラーッとデータがきて、さらにそのexcelを別名にてフロッピーに保存したいのですが、どのようにすればいいのでしょうか?
よろしくお願いします。

A 回答 (4件)

> セルb2に入ってるデータ「****」とかを、そのままブック名にして保存




a1 に pathとファイル名が入っていたとして、
(例えば D:\****\123456.xls とか)

oApp.ActiveWorkbook.SaveAs ( oApp.cells(1,1) )
で、良いのじゃないかと思います。
試していませんが、多分OKだと思います。
    • good
    • 0
この回答へのお礼

ryuu001さん、ありがとうございます!
早速試してみます。

お礼日時:2003/02/14 09:33

名前を付けて保存は次の通りです。


oApp.ActiveWorkbook.SaveAs Filename:="D:\****\123456.xls"
    • good
    • 0
この回答へのお礼

ryuu001さん、ありがとうございます。
例えば、セルb2に入ってるデータ「****」とかを、そのままブック名にして保存できる方法はありますか?
よろしければ、教えて下さい。

お礼日時:2003/02/10 09:26

こんにちは。

Accessからであれば、TransferSpreadsheet関数を使う
というのはどうでしょうか? 考慮済みならすいません。
参考URLでもいろいろ事例を検索できると思います。詳しくはヘルプなど
見てみて下さい。(きちんと書くのはちょっと自信ないので・・・)

参考URL:http://www7.big.or.jp/~pinball/
    • good
    • 0
この回答へのお礼

mayurinさん、ありがとうございます。
TransferSpreadsheet関数ですね。
むずかしそうだけど、頑張ってみます。

お礼日時:2003/02/10 09:23

こんにちは、ats8181oyajiです



ちょっと時間が無いので、ヒントにもならないですが
回答が無いので、出てまいりました。

たぶん、フォームのデータを以下の様に
"oApp.range("b4").Value = Me![1]"
エクセルに格納されてますがもこれだと
1行だけになると思います。
私なら
1.抽出データを画面表示前に、テーブル作成クエリにて、新規テーブルを作成
2.そのテーブルをPrivate Sub エクセル起動_Click() 内にて
レコードセットを使いオープンしEOFまでループしながら読み込み。
3.そのループの中に、読み込んだデータを(エクセルの行を変更しながら)
エクセルにセットする

とします。
詳しいコーディングは、他の方におまかせします。


では
    • good
    • 0
この回答へのお礼

ats8181oyajiさん、ありがとうございます。
参考にさせて頂きます。
ありがとうございました。

お礼日時:2003/02/10 09:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!