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
No.1
- 回答日時:
なぜExcelVBAでやらないのか。
>VB初心者) と言ってながら、難しい途を選び、質問している。
そういう場合は自分で勉強が原則でしょう。他ソフトとの連携など
初心者には難しいと思ったほうが良い。
質問の記述を広げて、全体的にどういうことをやりたいのか。なぜVBが後から起動するのか。他人(素人)に使ってもらうとき、VBを起動など操作の1ステップに入るのは、適当でないのでは。
回答有難う御座います。
AccessVBAを主に進めてExcelVBAを少しかじった時点で、一度VisualBasicで
Excel操作を作ってみたいと思い深みにはまりました。
回答の通り、初心者が難しい途を選び質問しています。
原則・難しいと決め付けされると、ここで終わってしまいます、
このようなアドバイスも無知な私にとって大きなステップUPになります。
不快な思いをさせてしまった事はすみませんでした。
No.2ベストアンサー
- 回答日時:
と照らし合わせても、提示されているコードを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では何もしてません。
n-jun 様 imogasi 様共に度々の回答有難う御座います。
質問不足で失礼致しました。
コードはVB6.0のフォームに対して書いています。
しかもロード時
>MsgBox ActiveCell
ではエラーでした。On Error Resume Next追加でエラー無視していました
これは強制的にExcelの何か操作をしてしる??
この後立ち上げたExcelから、ActiveCellのみで値を取得出来たのは
不思議ですが間違えた方法でした。
>Set xlApp = GetObject(, "Excel.Application")
>xlApp.ActiveCell
ゲットしたアプリをアクティブセルの前に指定してあげれば良いのですね、解決です。
助かりました、有難う御座います。
No.3
- 回答日時:
GetObjectで既起動のExcelを取得することは出来ますが
Excel自体が複数起動されていた場合最初に起動したExcel以外のインスタンス(実体)の取得が困難な場合があります
このあたりも熟慮されたほうがいいでしょう
単にセルデータの取得を目的として
XLSファイルへの更新を行わないのであればADOでデータを取得するといった方向も検討してみましょう
回答有難う御座います。
確かにGetObjectで取得することは出来たのですが、
Excel自体を複数起動した場合最初のみでした。
ADOはOLEDBでデータを取得する方法も調べて見ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) MSさん、シッカリしてよ~んッ! 3 2023/01/30 13:15
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 12:05
- Visual Basic(VBA) Excelマクロ Application.Run 5 2023/06/17 15:16
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlからcgiを自動的に起動させ...
-
VBで実行中のEXEファイルの情報...
-
VBAでOutlookを終了させたい Ex...
-
WinSCPで画像のように puttyを...
-
VC++アプリからEXCEL...
-
HTMLの自動close
-
gccプログラムで複数の実行ファ...
-
【プログラミング】HTAが想定通...
-
VB2005での起動しているフォーム数
-
VBSから別のVBS起動するとき変...
-
リムーバブルディスクのフォー...
-
VB6.0からエクセルを起動
-
アラームハンドラ 絶対時刻 ...
-
ミリ秒を○時間○分○秒にしたい
-
ACCESS VBAで別のACCESS(mdb)を...
-
フォームの最前面が効かない
-
アウトルックが起動しているか...
-
vba 時間の引き算 例えば 15:00...
-
意味不明の実行時エラーで困っ...
-
C++初心者です。 debug asserti...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アウトルックが起動しているか...
-
WinSCPで画像のように puttyを...
-
VBSから別のVBS起動するとき変...
-
Windows上のプログラム。「予め...
-
VBAでOutlookを終了させたい Ex...
-
VBで実行中のEXEファイルの情報...
-
VBSで起動したアプリが前面表示...
-
Process.Startで起動したアプリ...
-
EXCEL VBAから他アプリケーショ...
-
64bitで作ったEXEを32bitで起動...
-
exeファイルを実行するとすぐに...
-
リムーバブルディスクのフォー...
-
VB6で呼び出し元の情報を取得す...
-
VBAでIEが起動しているか...
-
フォームの最前面が効かない
-
VBAでSeleniumからChromeを起動...
-
エクセル起動時別プロセスで開く
-
VBSでExcelのUserFormをエクス...
-
ACCESS VBAで別のACCESS(mdb)を...
-
別アプリの起動、終了について
おすすめ情報