エクセルへの書込みは出来ないのでしょうか

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
oka

エクセルへの書込みは出来ないのでしょうか

#1 投稿記事 by oka »

プログラムを仕事にしている者ではありませんが仕事の効率を上げるため
「エクセルファイルにデータ書き込んでそのエクセルファイルを開く」
というプログラムを作れればと考えています。
実践コードモジュールにアクセスへのものがあったので
エクセルに直して実施してみたところ参照(SELECT)は出来るのですが
書込み(INSERT)がエラーになります。
ActiveBasicではなくODBC(?)の問題と思いますが
エクセルへの書込みは出来ないのでしょうか。
もしご存知の方がおられたら教えて下さい。
omasu
記事: 96
登録日時: 2005年9月02日(金) 22:15
連絡する:

データベースアクセス

#2 投稿記事 by omasu »

久々にお世話になります。

 データベースアクセスクラスのような技術力は私にはありませんので
 参考としての投稿です
 エクセル化については、かなり簡単な仕組みで作成が可能だ思います。
 過去に作成した例では

 事前に
  基本となるエクセルの表を作成する
  データの基となるCSVデータファイルのリンクを作成する

 プログラムで
  CSVデータファイルを出力する
  CSVデータファイルとエクセルを順番に起動する

 参考の起動コード

コード: 全て選択


Exec "FILE1.csv"
Exec "FILE2.csv"
Exec "FILE3.csv"
Exec "基本エクセルシート.xls"
 上記の方法で大量データの編集加工後、エクセルでの表計算出力をしていました。
 表自体を編集加工するプログラム作成であれば申し訳ありません。
 アクセスの記事で躊躇しましたが、参考になれば幸いと思います。
 
河川屋

#3 投稿記事 by 河川屋 »

>エクセルファイルにデータ書き込んでそのエクセルファイルを開く
この意味が、どうあっても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
oka

ありがとうございます

#4 投稿記事 by oka »

omasu様、河川屋様ありがとうございます。
別にActiveBasicで全部実施しなくても他のツールを使えばいいことですね。
「全部ActiveBasicでやらなきゃいけない」という強迫観念にとりつかれていた
気がします。
ほんとうにありがとうございました。
omasu
記事: 96
登録日時: 2005年9月02日(金) 22:15
連絡する:

エクセル化その後

#5 投稿記事 by omasu »

お世話になります。

 エクセル化を別の切り口で考えてみました。

 エクセルをスクリプトで作成するという考え方です。

 下記のコードは簡単なチェックサムの計算をするというスクリプトですが、
 アクティブベーシックでスクリプトを作り"ファイル名.xls"等にファイル出力し、
 アクティブベーシックから"Exec"で当該ファイルを起動すればエクセルとして起動します。
   実際に上記スクリプトをコピーしてテキストファイルにペーストし、
 拡張子を".xls"にして実行すれば、エクセルとして起動し、
 チェックサムの表計算が可能です。

追伸:スクリプトをアクティブベーシックで作ることになりますので、
    プログラムが完成すれば売り物になるかも知れませんね。m(_ _)m
返信する