- ベストアンサー
VBにて起動アプリの取得
TAGOSAKU7の回答
サンプルです。 プロジェクトの参照設定で Microsoft Excel x.0 Object Libraryを指定 (x.0はエクセルのバージョンによって、違う数字です) Option Explicit Sub Main() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim strDebug As String Dim strPath As String '起動しているエクセルアプリを取得する On Error Resume Next Set xlApp = GetObject(, "Excel.Application") On Error GoTo 0 '取得失敗 If xlApp Is Nothing Then Debug.Print "EXCELは起動していないようです" '取得成功 Else 'これより情報をデバッグウィンドウに出力 Debug.Print xlApp.Workbooks.Count & "冊のワークブックが見つかりました" 'ブックが存在する分だけ、ブックの情報を記す For Each xlBook In xlApp.Workbooks strPath = xlBook.Path If strPath = "" Then strPath = "未保存" End If strDebug = xlBook.Name & "[" & strPath & "]" Debug.Print strDebug ' xlBook.Close False '保存せずにブックを終了させる時 Next xlBook ' xlApp.Quit 'エクセルアプリを終了させる時 Set xlApp = Nothing End If End Sub
関連するQ&A
- VBを貼り付けたボタンからVBが起動できなくなった
よろしくお願いします。 エクセルのシートに配置していたボタンからVBが起動できなくなりました。 VB単独では動作するのですが。 他のブックのVBを貼り付けたボタンは、起動します。 起動できなくなった日以前にコピーしていた同一のブックも同様に起動しませ。 解決法があれば教えていただけないでしょうか。
- 締切済み
- Excel(エクセル)
- VB2005 起動したエクセルの待機でエラーになります
VB2005で開発中です。 エクセルを起動し、エクセルの処理が終わるまで待機をさせているのですが、既にエクセルのBOOKが開いていると、待機の状態のところでエラーになります。 具体的には Dim Proc As New Process Proc.Startinfo.Filename = "C:\EXCELSHEET.XLS" Proc.Start() Proc.WaitForExit() ←ここでエラー エラー内容は「このオブジェクトに関連付けされているプロセスはありません」です。 vb2005の起動の前に、エクセルを起動させていなければエラーは出ませんが、何か既にエクセルの表を開いているとエラーになります。 既に開いているエクセルの表は、vb2005から閉じたりする作業はしたくありません。開いているままでvb2005で新たに表を開きたいです。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- VB.NETからエクセルを起動して、エクセルでVBを閉じたい。
こんにちは。 先日、エクセルのフォームを最前面に配置したいという 質問をさせて頂いたものでございます。 それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、 最前面にする事は出来たのですが、フォームを動かすと ブックはその一つ下に現れてしまい、 ブックを最背面に配置するなどを試みてみたのですが、 どうもうまく行かないので、 エクセルから直に立ち上げることが出来ないようにして VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。 それで、データを送る方法は何とかなりそうなのですが、 VB.NETのフォームからエクセルを起動して、 次にエクセルからそのフォームを出したり、隠したりしたいのですが、 その場合、VB.NETのフォームのなんと言うハンドルを取得すればよいでしょうか? IDにも色々あるようで、どれを使えばよいのか分からなくなってしまいました。 そのIDはVBのフォームを起動した時に、エクセルと共有するiniファイルなどに、書き込んでおこうかと思っています。 よろしくお願いいたします。m(__)m
- ベストアンサー
- Visual Basic
- VBからExcelのシートを操作する
VBからExcelを操作するのですが、 たとえば、Book1のSheet1 を Book2のSheet1の後ろへ という形でシートをコピーしたいのですがうまくいきません。 Sheet1,Sheet2を Excel.Worksheet 型で定義した変数へそれぞれ取得し、Sheet1のcopyメソッドを使って試しています。 Sheet1.copy のみだと、新たなブックへきちんとコピーされるのですが、After:= Sheet2 をつけるとエラーが起きてしまいます。 この方法で、また、他の方法でもうまくいく方法を御存知の方、何卒御教授のほどをお願いします。
- ベストアンサー
- Visual Basic
- VB2005.NETプログラムから、エクセル2007へのマクロ実行を無効にしたい。
<PC1 動作環境> ・OS :Vista Business ・ソフト:office2007 Excel <PC2 動作環境> ・OS :Vista Ultimate ・ソフト:office2007 Excel <目的> VB2005.NETで開発したプログラムから、 エクセルのセルに値を入れるソフト開発しており、 エクセル側にマクロを仕込み動かしています。 VB側から、エクセルのマクロを動かしたくない場合があります。 セキュリティセンター⇒マクロの設定⇒警告を表示して全てのマクロを無効にするを選択しました。 <問題> PC1では、VB側から、エクセルのマクロが実行できなくなりますが、 PC2では、VB側から、エクセルのマクロが実行できてしまう。 PC2でも、VB側から、エクセルのマクロを実行しないようにしたいのですが、どなたか解決方法を知っている方いませんでしょうか。 宜しくおねがい致します。
- ベストアンサー
- オフィス系ソフト
- VB5.0とVB6.0
ご教授お願いします。 VB4.0で開発を始め、VB5.0に。主にDBはDAOを使っています。いくつかのアプリを配布し(セットアップウィザードを使い)、その後VB6.0がリリースされましたが、配布済みアプリに影響があると思いB6.0へのUpをあきらめていました。VB5.0は98でしか認められていず、2000でも試しましたが、確かに一部の動作でエラーが起こったりしました。使用しているマシンが不安定になったので、中古PCに98をインストールし、開発環境を移しましたが、セットアップウィザードが「予期せぬエラー」とかで動きませんでした。以上が経過です。 ようやくVB6.0を入手し、とりあえず2000で、2,3のアプリで試したところ、そのまま(何の手も加えず)OKでした。ちょっと気がついた点といえば、作成されたEXEのサイズが1割ほど小さくなっていました。 質問ですが、VB5.0→VB6.0では何が変わったのでしょうか?(当時はある程度読んだ気がしますが、覚えていません) そして、アップ後、注意しなければならないことは何でしょうか? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- エクセルのコメントの有無をVB上で取得する方法を教えてください。
エクセルのいくつかのセルにコメントがつけてあります。そのコメントをVB上からさわったり,コメントによって動きを変えたりしたいのですが,コメントのないセルでコメントを参照しようとするとエラーが出るようです。エクセルのコメントの有無をVB上で取得する方法はどういうのでしょうか,どなたか教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセル2007でマクロ警告が出る
エクセル2007を使用しています。 古いブックから新しいブックにシートをコピーしました。 古いブックは開くたびに「セキュリティの警告 オプション」の表示が上部にでていましたが、シートをコピーしたことで、それを引き継いでしまったようです。 〚開発〛からマクロを調べてもなにもありません。 警告が出ないようにするにはどうしたらいいでしょうか? ほかに確認方法はありますか?
- ベストアンサー
- Excel(エクセル)
- VBからエクセルのテキストボックスの名称を取得したい
VB6.0 SP5 WIN2000 で開発しています。 エクセルのシートに複数のテキストボックスがあります。 そのテキストボックスの名称や数は解らない前提で そのテキストボックスの名称(”テキスト 1”などの)を すべてVBから取得したいのですが、 解る方がいましたら教えてほしいのですが よろしくお願いします。
- ベストアンサー
- Visual Basic
- VB6.0 SHCreateDirectoryExの確認メッセージを非
VB6.0 SHCreateDirectoryExの確認メッセージを非表示する方法について VB6.0でプログラムを作成しています。 プログラムの動作は以下の通りです。 (1)ユーザーが指定した、ネットワーク上の任意のサーバー内のフォルダのフルパスを取得 (2)(1)のフォルダ以下に、任意のフォルダ(Excelで作成したリストより取得)を作成 SHCreateDirectoryExを使ってフォルダ作成を行っていますが、 「フォルダー'フォルダ名'が作成できません。指定したフォルダがみつかりません。」 というメッセージが出る場合があります。 On Error GoToで対応しようとしましたが、エラーメッセージではない為、 スルーされてしまい、メッセージが表示されてしまいました。 「OK」をクリックすると問題なく次の処理へ移りますが、夜間に大量のフォルダ作成を 行いたいので、このメッセージを非表示にする(無視して次の処理に移る)方法を 教えて頂けないでしょうか? 以上、よろしくお願いいたします。
- ベストアンサー
- Visual Basic
お礼
助かりました。本当に有難うございます。