DOBON.NET DOBON.NETプログラミング掲示板過去ログ

エクセルファイルをVBで読むには?

分類:[VB6以前]

お世話になってます。
VBは早1週間やってます。

エクセルの機能で、マクロを利用し操作の記録をしておける機能が有りますが、
それをVB上で実行することは可能でしょうか?
例)「VBでボタンを押すとc:\sample.xlsが起動しA1に"TEST"って表示する」

別サイトで調べたら「録音してその文字列を使う」とのことで、文字列は取得し
ました。

-------------------------マクロ開始-------------------------
sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2003/8/28 ユーザー名 : ooki
'
Columns("A:A").Select
ActiveWorkbook.Names.Add Name:="aaa", RefersToR1C1:="=Sheet1!C1"
ActiveWorkbook.Names.Add Name:="aaa", RefersToR1C1:="=Sheet1!C1"
Columns("B:B").Select
ActiveWorkbook.Names.Add Name:="bbb", RefersToR1C1:="=Sheet1!C2"
ActiveWorkbook.Names.Add Name:="bbb", RefersToR1C1:="=Sheet1!C2"
Columns("C:C").Select
ActiveWorkbook.Names.Add Name:="ccc", RefersToR1C1:="=Sheet1!C3"
ActiveWorkbook.Names.Add Name:="ccc", RefersToR1C1:="=Sheet1!C3"
Columns("A:C").Select
ActiveWorkbook.Names.Add Name:="ddd", RefersToR1C1:="=Sheet1!C1:C3"
ActiveWorkbook.Names.Add Name:="ddd", RefersToR1C1:="=Sheet1!C1:C3"
End Sub
-------------------------マクロ終了-------------------------

例えば上記を、どのようにVBから動かせば良いのでしょうか?
ヒント等でも結構ですので、お教え下さい。

【環境】
OS:WIN2000
AP:VB6(SP5)&EXCEL2000

宜しくお願いします。
エクセルに関するお勧めサイト
http://www.bcap.co.jp/hanafusa/
情報が足らないのでなんともいえないのですが、
手っ取り早く、行う方法です。

EXCELのVBAに
SUB auto_open
Columns("A:A").Select
ActiveWorkbook.Names.Add Name:="aaa", RefersToR1C1:="=Sheet1!C1"
ActiveWorkbook.Names.Add Name:="aaa", RefersToR1C1:="=Sheet1!C1"
Columns("B:B").Select
ActiveWorkbook.Names.Add Name:="bbb", RefersToR1C1:="=Sheet1!C2"
ActiveWorkbook.Names.Add Name:="bbb", RefersToR1C1:="=Sheet1!C2"
Columns("C:C").Select
ActiveWorkbook.Names.Add Name:="ccc", RefersToR1C1:="=Sheet1!C3"
ActiveWorkbook.Names.Add Name:="ccc", RefersToR1C1:="=Sheet1!C3"
Columns("A:C").Select
ActiveWorkbook.Names.Add Name:="ddd", RefersToR1C1:="=Sheet1!C1:C3"
ActiveWorkbook.Names.Add Name:="ddd", RefersToR1C1:="=Sheet1!C1:C3"
End Sub
と記述しておき、
VBではこのファイルを起動するだけ、というのではどうでしょうか?
■No483に返信(クリリンさんの記事)
> エクセルに関するお勧めサイト
> http://www.bcap.co.jp/hanafusa/
1度自動でマクロをトレースし、それを予めVBに貼り付けて対応しました。
ありがとうございました。
解決済み!
■No486に返信(稲熊さんの記事)
> 情報が足らないのでなんともいえないのですが、
> 手っ取り早く、行う方法です。
>
> EXCELのVBAに
> SUB auto_open
> Columns("A:A").Select
> ActiveWorkbook.Names.Add Name:="aaa", RefersToR1C1:="=Sheet1!C1"
> ActiveWorkbook.Names.Add Name:="aaa", RefersToR1C1:="=Sheet1!C1"
> Columns("B:B").Select
> ActiveWorkbook.Names.Add Name:="bbb", RefersToR1C1:="=Sheet1!C2"
> ActiveWorkbook.Names.Add Name:="bbb", RefersToR1C1:="=Sheet1!C2"
> Columns("C:C").Select
> ActiveWorkbook.Names.Add Name:="ccc", RefersToR1C1:="=Sheet1!C3"
> ActiveWorkbook.Names.Add Name:="ccc", RefersToR1C1:="=Sheet1!C3"
> Columns("A:C").Select
> ActiveWorkbook.Names.Add Name:="ddd", RefersToR1C1:="=Sheet1!C1:C3"
> ActiveWorkbook.Names.Add Name:="ddd", RefersToR1C1:="=Sheet1!C1:C3"
> End Sub
> と記述しておき、
> VBではこのファイルを起動するだけ、というのではどうでしょうか?
エクセル側で設定してしまうとは、面白いアイデアですね?
ちなみに今回は、これをVBに貼り付けて対応することにしました。

素朴な疑問ですが、「ActiveWorkbook.Names.Add〜」って2行づつ出
てくるじゃないですか?
何故なんでしょう?

DOBON.NET | プログラミング道 | プログラミング掲示板