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

VisualBasic 6.0 初心者です。
既に起動しているExcelの後にVisualBasicを立ち上げた場合、
既に起動しているExcelの情報を得ることが出来るのでしょうか?
やりたい事は
Excel起動⇒VB起動⇒Excelのセルを選択⇒そのセルに入力されている値
を取得。
VB起動⇒Excel起動の場合はActiveCellの値を取得出来たのですが
既に起動しているExcelの場合 エラー になってしまいます。
お手数ですが、ご教授願います。

Private Sub コマンド1_Click()
MsgBox ActiveCell
End Sub

'Form_Load時にこれを実行しないと開いたExcelのアクティブセル値を得られない??
Private Sub Form_Load()
MsgBox ActiveCell
End Sub

A 回答 (3件)

なぜExcelVBAでやらないのか。


>VB初心者) と言ってながら、難しい途を選び、質問している。
そういう場合は自分で勉強が原則でしょう。他ソフトとの連携など
初心者には難しいと思ったほうが良い。
質問の記述を広げて、全体的にどういうことをやりたいのか。なぜVBが後から起動するのか。他人(素人)に使ってもらうとき、VBを起動など操作の1ステップに入るのは、適当でないのでは。
    • good
    • 0
この回答へのお礼

回答有難う御座います。
AccessVBAを主に進めてExcelVBAを少しかじった時点で、一度VisualBasicで
Excel操作を作ってみたいと思い深みにはまりました。
回答の通り、初心者が難しい途を選び質問しています。
原則・難しいと決め付けされると、ここで終わってしまいます、
このようなアドバイスも無知な私にとって大きなステップUPになります。
不快な思いをさせてしまった事はすみませんでした。

お礼日時:2009/04/24 11:47

http://okwave.jp/qa4895039.html

と照らし合わせても、提示されているコードをVB6.0で行なうとエラーになり、VBAであれば取得できるようなんです。

コードがVB6.0に書かれているのかVBAに書かれているのか、わからないのです。
⇒質問はExcelVBAの事のように思えてしまいます。

一応VB6.0でExcelの起動確認と値取得をコマンドボタンで実行したものは、

Private Sub Command1_Click()
Dim xlApp As Object

On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")

If xlApp Is Nothing Then
MsgBox "Excelは起動してません"
Else
MsgBox "Excelは起動してます" & vbLf & xlApp.ActiveCell
End If

On Error GoTo 0

Set xlApp = Nothing
End Sub

でした。
⇒Form_Loadでは何もしてません。
    • good
    • 0
この回答へのお礼

n-jun 様 imogasi 様共に度々の回答有難う御座います。
質問不足で失礼致しました。
コードはVB6.0のフォームに対して書いています。
しかもロード時
>MsgBox ActiveCell
ではエラーでした。On Error Resume Next追加でエラー無視していました
これは強制的にExcelの何か操作をしてしる??
この後立ち上げたExcelから、ActiveCellのみで値を取得出来たのは
不思議ですが間違えた方法でした。
>Set xlApp = GetObject(, "Excel.Application")
>xlApp.ActiveCell
ゲットしたアプリをアクティブセルの前に指定してあげれば良いのですね、解決です。

助かりました、有難う御座います。

お礼日時:2009/04/24 14:21

GetObjectで既起動のExcelを取得することは出来ますが


Excel自体が複数起動されていた場合最初に起動したExcel以外のインスタンス(実体)の取得が困難な場合があります
このあたりも熟慮されたほうがいいでしょう

単にセルデータの取得を目的として
XLSファイルへの更新を行わないのであればADOでデータを取得するといった方向も検討してみましょう
    • good
    • 0
この回答へのお礼

回答有難う御座います。
確かにGetObjectで取得することは出来たのですが、
Excel自体を複数起動した場合最初のみでした。
ADOはOLEDBでデータを取得する方法も調べて見ます。

お礼日時:2009/04/24 15:15

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