by 河川屋 » 2007年4月14日(土) 17:31
>エクセルファイルにデータ書き込んでそのエクセルファイルを開く
この意味が、どうあってもABからエクセルファイルを書きたい、というなら別ですが、
エクセルファイルを開いてからコマンドボタンを押してファイルから読み込むことでいいなら
エクセル上のVBAなら簡単です。ODBCのようなことは一切不要でVBA基本文法のみ。
(ただし、枠はすでに作ってあって、そこにデータを読み込むか書き出したい場合に限り簡単。)
VBAはこんな感じ。一応は任意のセルを対象として読み書きできます。
Sub ボタン1_Click()
ok = MsgBox("データをファイルより入力します", vbOKCancel)
If ok = vbCancel Then Exit Sub
Worksheets("sheet1").Activate 'シート1に移動する。(初期状態はアクティブセル。)
fl$ = Range("A1").Value 'A1のセルにファイル名を入れておく。
Open fl$ For Iutput As #1
input #1,x
Cells(i,j).Value=x ’iが行番号、jが列番号になる。あらかじめ値を設定しておく。
'または
Range("B2").Value=x ' "B2"がセル位置に当たる。
end sub
>エクセルファイルにデータ書き込んでそのエクセルファイルを開く
この意味が、どうあってもABからエクセルファイルを書きたい、というなら別ですが、
エクセルファイルを開いてからコマンドボタンを押してファイルから読み込むことでいいなら
エクセル上のVBAなら簡単です。ODBCのようなことは一切不要でVBA基本文法のみ。
(ただし、枠はすでに作ってあって、そこにデータを読み込むか書き出したい場合に限り簡単。)
VBAはこんな感じ。一応は任意のセルを対象として読み書きできます。
Sub ボタン1_Click()
ok = MsgBox("データをファイルより入力します", vbOKCancel)
If ok = vbCancel Then Exit Sub
Worksheets("sheet1").Activate 'シート1に移動する。(初期状態はアクティブセル。)
fl$ = Range("A1").Value 'A1のセルにファイル名を入れておく。
Open fl$ For Iutput As #1
input #1,x
Cells(i,j).Value=x ’iが行番号、jが列番号になる。あらかじめ値を設定しておく。
'または
Range("B2").Value=x ' "B2"がセル位置に当たる。
end sub