VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/07/03(Mon) 11:58
投稿者かずちん
Eメール
URL
タイトルありがとうございました

> > 使用するパソコンは全て同一の環境にOFFICEがインストールされている為
> > あまり良くはありませんが、力技で解決いたしました。
>
> それが嫌だったら、FindExecutable を使ったらどうかな。
>
> Private Declare Function FindExecutable Lib "shell32.dll" Alias "FindExec
utableA" _
>     (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As L
ong
> Dim rc As Long, Buf As String * 1024
> rc = FindExecutable("Dummy.xls", "", Buf)
>
> で、BufにExcel.exeのフルパスが得られる。
> #(Dummy.xlsは実在していないと駄目なのか?)

こんなAPIがあるとは知りませんでした。
早速使ってみましたが、最初の引数はファイルが存在しないと駄目なのでExcel.exeのフルパスを
得る際にダミーのExcelファイルを一時的に作成・削除で対処しました。

又Bufを1024バイトで作成しているので
Left(Buf,Instr(Buf,vbNullChar)-1)でフルパス部分のみ抽出しています。
ダンボさん、色々とありがとうございました。

ただ最初の引数を設定する際にStringのバイト数を設定する必要性がわかっていないのでそこら辺は
自分で調べてみようと思います。
ちなみにバイト数を指定しないで実行するとVB自体が落ちてしまいました。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -