• ベストアンサー

(VB初心者) VB起動時既に起動されているExcelの情報

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

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

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では何もしてません。

mmac
質問者

お礼

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

その他の回答 (2)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

GetObjectで既起動のExcelを取得することは出来ますが Excel自体が複数起動されていた場合最初に起動したExcel以外のインスタンス(実体)の取得が困難な場合があります このあたりも熟慮されたほうがいいでしょう 単にセルデータの取得を目的として XLSファイルへの更新を行わないのであればADOでデータを取得するといった方向も検討してみましょう

mmac
質問者

お礼

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

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

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

mmac
質問者

お礼

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

関連するQ&A