Excelのファイルパスの取得について – プログラミング – Home

Excelのファイルパスの取得について
 
通知
すべてクリア

[解決済] Excelのファイルパスの取得について


タブチ
 タブチ
(@タブチ)
ゲスト
結合: 15年前
投稿: 3
Topic starter  

お世話になります。

環境はXP VC6.0 MFCです。

プログラムからすでに開いているExcelのファイルパスを取得する方法はないものでしょ
うか?

いろいろ調べた結果、実行パスの取得(~.exe)はできたのですが、ファイルパス
(~.xls)の取得方法がよくわからないのです。

どなたかご教授ください。


引用未解決
トピックタグ
みい
 みい
(@みい)
ゲスト
結合: 22年前
投稿: 65
 

やりたいのはこれの事でしょうか↓

http://www.ujasiri.com/prglib/vc/excel/import/imp_wbk_FullName.html


返信引用
タブチ
 タブチ
(@タブチ)
ゲスト
結合: 15年前
投稿: 3
Topic starter  

みいさん、返信ありがとうございます。

サンプルコードで動作を確認しようとしたところ、

#import C:\Program Files\Microsoft Office\Office11\excel.exe no_namespace
rename(DocumentProperties, DocumentPropertiesXL)
の部分でタイプライブラリからオープンできませんというエラーが出てしまいます。

これは現在使用しているExcelの環境が2003のため起きていると判断しまして
#import C:\Program Files\Microsoft Office\Office11\excel.exe no_namespace
rename(DocumentProperties, DocumentPropertiesXL)
と書き換えたところ大量のエラーが出てきました。

エラーの内容は主に
・型が指定されていない。
・シンタックスエラー
です。

このエラーはどうやれば回避できるのでしょうか?

VCの知識が足りなくて申し訳ないのですが、どなたか教えてください。

お願いします。


返信引用
の
 の
(@の)
ゲスト
結合: 16年前
投稿: 7
 

私は#importを使用する方法がわからないので

Visual C++ Excel操作編(みいさんの提示されたページの一つ上階層です)
http://www.ujasiri.com/prglib/vc/excel/vc_excel.html

ClassWizardを使用してタイプライブラリからExcel操作用クラスを取り込み操作する方法
Excelの起動
http://www.ujasiri.com/prglib/vc/excel/xlsopen_exp.html
の部分

pXlsApp.CreateDispatch(Excel.Application);
pXlsApp.m_bAutoRelease = TRUE;
pXlsApp.SetVisible(TRUE);

LPDISPATCH pWkBooks = pXlsApp.GetWorkbooks();
CString strFile = C:\\work\\BOOK1.XLS;
pXlsBooks.AttachDispatch(pWkBooks,TRUE);
pXlsBooks.Open((LPCTSTR)strFile);

の下に↓追加
_Workbook pXlsBook;
LPDISPATCH XlsBook = m_excl.pXlsApp.GetActiveWorkbook();
pXlsBook.AttachDispatch(XlsBook,TRUE);
CString path = pXlsBook.GetPath(); //パス取得

既に起動しているEXCELのブックの場所が欲しいなら、オープン部分を
Excelアプリケーションへのアタッチ
http://homepage2.nifty.com/hippos/vcexcel/attach_app.html
のような処理への変更も必要かもしれません。


返信引用
ryo
 ryo
(@ryo)
ゲスト
結合: 23年前
投稿: 252
 

ちょっと疑問なんですが・・・

>プログラムからすでに開いているExcelのファイルパスを取得する方法はないものでしょ
うか?
この、「プログラム」は、
現在タブチさんが作成されているアプリケーションのことでしょうか?

>いろいろ調べた結果、実行パスの取得(~.exe)はできたのですが、ファイルパス
ここでいう「実行パス」が指し示すexeファイルとは?

#自アプリでxlsファイルを開いているなら、パスは既知のはずだし
#既知のパスを引き渡せないところでファイルパスを知りたくなったとしても
#その手法を調べるのにexeのパスを知る方法などの情報に触れるのは違和感がある


返信引用
の
 の
(@の)
ゲスト
結合: 16年前
投稿: 7
 

>ryo 2009/10/01(木) 20:41:45

微妙に句読点がないので私も迷いましたが
みいさんとのやり取りで「すでに起動されているEXCEL」への
操作と判断しました。

どちらにしても、みいさんや私の方法ではEXCEL操作が必要なので
別のアプローチがあるかもしれません。

#EXCELのタイトルバーから取れないかと思ったりしました。
#試してません。


返信引用
タブチ
 タブチ
(@タブチ)
ゲスト
結合: 15年前
投稿: 3
Topic starter  

のさん、ryoさんありがとうございます。

ryoさんの質問の答えなんですが、

>現在タブチさんが作成されているアプリケーションのことでしょうか?
そうです。MFCのアプリケーション側から取得したいと考えてます。

>ここでいう「実行パス」が指し示すexeファイルとは?
Officeの中にあるEXCEL.EXEのファイルのことです。
実行パス=ファイルパスという変な勘違いをしてました。

のさんとみいさんが教えてくれたリンクを元に何とかやってみます。

ありがとうございました。

あと返信が遅くなって申し訳ありません。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました