• ベストアンサー

VBにて起動アプリの取得

TAGOSAKU7の回答

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

サンプルです。 プロジェクトの参照設定で 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

papa_kun
質問者

お礼

助かりました。本当に有難うございます。

関連するQ&A

  • VBを貼り付けたボタンからVBが起動できなくなった

    よろしくお願いします。 エクセルのシートに配置していたボタンからVBが起動できなくなりました。 VB単独では動作するのですが。 他のブックのVBを貼り付けたボタンは、起動します。 起動できなくなった日以前にコピーしていた同一のブックも同様に起動しませ。 解決法があれば教えていただけないでしょうか。

  • VB2005 起動したエクセルの待機でエラーになります

    VB2005で開発中です。 エクセルを起動し、エクセルの処理が終わるまで待機をさせているのですが、既にエクセルのBOOKが開いていると、待機の状態のところでエラーになります。 具体的には Dim Proc As New Process Proc.Startinfo.Filename = "C:\EXCELSHEET.XLS" Proc.Start() Proc.WaitForExit() ←ここでエラー エラー内容は「このオブジェクトに関連付けされているプロセスはありません」です。 vb2005の起動の前に、エクセルを起動させていなければエラーは出ませんが、何か既にエクセルの表を開いているとエラーになります。 既に開いているエクセルの表は、vb2005から閉じたりする作業はしたくありません。開いているままでvb2005で新たに表を開きたいです。 よろしくお願いします。

  • VB.NETからエクセルを起動して、エクセルでVBを閉じたい。

    こんにちは。 先日、エクセルのフォームを最前面に配置したいという 質問をさせて頂いたものでございます。 それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、 最前面にする事は出来たのですが、フォームを動かすと ブックはその一つ下に現れてしまい、 ブックを最背面に配置するなどを試みてみたのですが、 どうもうまく行かないので、 エクセルから直に立ち上げることが出来ないようにして VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。 それで、データを送る方法は何とかなりそうなのですが、 VB.NETのフォームからエクセルを起動して、 次にエクセルからそのフォームを出したり、隠したりしたいのですが、 その場合、VB.NETのフォームのなんと言うハンドルを取得すればよいでしょうか? IDにも色々あるようで、どれを使えばよいのか分からなくなってしまいました。 そのIDはVBのフォームを起動した時に、エクセルと共有するiniファイルなどに、書き込んでおこうかと思っています。 よろしくお願いいたします。m(__)m

  • VBからExcelのシートを操作する

     VBからExcelを操作するのですが、  たとえば、Book1のSheet1 を Book2のSheet1の後ろへ  という形でシートをコピーしたいのですがうまくいきません。    Sheet1,Sheet2を Excel.Worksheet 型で定義した変数へそれぞれ取得し、Sheet1のcopyメソッドを使って試しています。  Sheet1.copy のみだと、新たなブックへきちんとコピーされるのですが、After:= Sheet2 をつけるとエラーが起きてしまいます。  この方法で、また、他の方法でもうまくいく方法を御存知の方、何卒御教授のほどをお願いします。

  • 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では何が変わったのでしょうか?(当時はある程度読んだ気がしますが、覚えていません) そして、アップ後、注意しなければならないことは何でしょうか? よろしくお願いいたします。

  • エクセルのコメントの有無をVB上で取得する方法を教えてください。

    エクセルのいくつかのセルにコメントがつけてあります。そのコメントをVB上からさわったり,コメントによって動きを変えたりしたいのですが,コメントのないセルでコメントを参照しようとするとエラーが出るようです。エクセルのコメントの有無をVB上で取得する方法はどういうのでしょうか,どなたか教えてください。

  • エクセル2007でマクロ警告が出る

    エクセル2007を使用しています。 古いブックから新しいブックにシートをコピーしました。 古いブックは開くたびに「セキュリティの警告 オプション」の表示が上部にでていましたが、シートをコピーしたことで、それを引き継いでしまったようです。 〚開発〛からマクロを調べてもなにもありません。 警告が出ないようにするにはどうしたらいいでしょうか? ほかに確認方法はありますか?

  • VBからエクセルのテキストボックスの名称を取得したい

    VB6.0 SP5 WIN2000 で開発しています。 エクセルのシートに複数のテキストボックスがあります。 そのテキストボックスの名称や数は解らない前提で そのテキストボックスの名称(”テキスト 1”などの)を すべてVBから取得したいのですが、 解る方がいましたら教えてほしいのですが よろしくお願いします。

  • VB6.0 SHCreateDirectoryExの確認メッセージを非

    VB6.0 SHCreateDirectoryExの確認メッセージを非表示する方法について VB6.0でプログラムを作成しています。 プログラムの動作は以下の通りです。    (1)ユーザーが指定した、ネットワーク上の任意のサーバー内のフォルダのフルパスを取得  (2)(1)のフォルダ以下に、任意のフォルダ(Excelで作成したリストより取得)を作成 SHCreateDirectoryExを使ってフォルダ作成を行っていますが、 「フォルダー'フォルダ名'が作成できません。指定したフォルダがみつかりません。」 というメッセージが出る場合があります。 On Error GoToで対応しようとしましたが、エラーメッセージではない為、 スルーされてしまい、メッセージが表示されてしまいました。 「OK」をクリックすると問題なく次の処理へ移りますが、夜間に大量のフォルダ作成を 行いたいので、このメッセージを非表示にする(無視して次の処理に移る)方法を 教えて頂けないでしょうか? 以上、よろしくお願いいたします。