仕事のカタマリにようこそ!  [ ログイン | ユーザ登録 ]
フォーラムから検索

機械用3D-CAD SolidWorks非公認のユーザサイトです
 
 
Web katamari.org
仕事のカタマリ
ホーム リンク集 ダウンロード フォーラム(掲示板) FAQ お問い合わせ









フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27)
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/04/24 - 17:01:52
ホーム ヘルプ 検索 ログイン 登録

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: ファイルOpenDialogの起動 前のトピック 次のトピック
ページ: [1] 2 Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: ファイルOpenDialogの起動  (閲覧数 8971 回)
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
ファイルOpenDialogの起動
« 投稿日: 2004/05/26 - 20:34:49 »
引用して返信

お世話になっております。Hiroponです
ファイルOpenDialogの起動方法どなたかご存知ないでしょうか?
ファイル->開く と選択すると出るファイル選択のためのDialogです。
エクセルのマクロなら 
Application.Dialogs(xlDialogOpen).Show
で表示させることができますが SolidWorksは???

エクセルベースで
Set swApp = CreateObject("SldWorks.Application")
を使ってSolidWorksを制御することもできますが、途中まで
SolidWorksベースで作成してしまって機能追加でつけたいので
エクセルベースでは作らない方向です。

どなたか ご存知の方いらっしゃればご指南の程よろしくお願いします。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #1 投稿日: 2004/05/27 - 08:25:13 »
引用して返信

まともに動作するかわかりませんが、以下のスクリプトでダイアログが表示されます。
一応ダイアログの表示・ファイルのオープンは確認しました。
(新規のダイアログのメソッドも書いておきます。)

'-----------------------------------------------------
Sub main()
    Dim swHTMLCtrl As Object
    Set swHTMLCtrl = CreateObject("SwHtmlControl.SwHtmlInterface.12")
    'ファイル−開くのダイアログ
    swHTMLCtrl.FileOpenDialog
    'ファイル−新規のダイアログ
    swHTMLCtrl.FileNewDialog
End Sub
'-----------------------------------------------------

議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #2 投稿日: 2004/05/27 - 09:15:49 »
引用して返信

Makoronさん
早速の御返答ありがとうございます。
まだ動作確認はしていませんが
SwHtmlControl.SwHtmlInterfaceオブジェクトの生成
ですかーーー。
これってヘルプに載ってましたか?
まだ、なにも確認していませんがまずは御礼が先かと・・・・
本当にありがとうございました。
また、動作確認等の確認が終わったら報告しますね。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #3 投稿日: 2004/05/27 - 10:03:26 »
引用して返信

'
引用元: hiropon 投稿日 '.timeformat('1085616949').'   
'
Makoronさん
早速の御返答ありがとうございます。
まだ動作確認はしていませんが
SwHtmlControl.SwHtmlInterfaceオブジェクトの生成
ですかーーー。
これってヘルプに載ってましたか?
まだ、なにも確認していませんがまずは御礼が先かと・・・・
本当にありがとうございました。
また、動作確認等の確認が終わったら報告しますね。

ヘルプに載ってないと思います。

SWのライブラリをいろいろと調べていたら、このオブジェクトにメソッドを見つけたのです。
この様な使用方法が正しいかはわかりませんが、VBの参照設定にライブラリーとして表示されるので、使えるものは使っています。

ちなみに、SDMLibライブラリーの smBitMap クラスの extractBitMap2File メソッドで、
プレビュー画像を取得する方法があります。
(たしか、SWが正式に方法として公開していたような気がします。)



議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #4 投稿日: 2004/05/27 - 12:40:34 »
引用して返信

Makornさん
補足でいろいろ教えていただきありがとうございます。

SDMLibライブラリーって現状使っているSolidworks(SolidWorks2004
SP2.1)に入っています?それとも、SWのホームページで公開されて
いてそれをダウンロードって感じになるんですか? :-
VBの参照設定にライブラリーには検索してもなかったんですが・・・
(検索のしかたがわるいのかもしれません)

また質問になってしまいますが
もしよろしければ教えてください。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #5 投稿日: 2004/05/27 - 17:21:02 »
引用して返信

'
引用元: hiropon 投稿日 '.timeformat('1085629234').'   
'
Makornさん
補足でいろいろ教えていただきありがとうございます。

SDMLibライブラリーって現状使っているSolidworks(SolidWorks2004
SP2.1)に入っています?それとも、SWのホームページで公開されて
いてそれをダウンロードって感じになるんですか? :-
VBの参照設定にライブラリーには検索してもなかったんですが・・・
(検索のしかたがわるいのかもしれません)

また質問になってしまいますが
もしよろしければ教えてください。

たぶんSolidWorks2004から追加されたライブラリーだと思っているのでSP2.1でも入っていると思います。

VBの参照設定の画面では「sdm 1.0 Type Library」と表示されているはずです。
なければSolidworksのインストールフォルダ(通常はC:Program FilesSolidWorks)にある「sdm.dll」のファイルです。

またまた、ちなみに。
VBやVBAの参照設定で設定したライブラリーは、
オブジェクトブラウザで表示すると、プロパティやメッソッドが確認できるので
いろいろと試してみるとSWAPIマニュアルにはない機能が使える...かも知れません。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #6 投稿日: 2004/05/27 - 18:24:47 »
引用して返信

extractBitMap2Fileを使ったサンプルプログラムを作ってみました。
 SDMSample.lzh
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #7 投稿日: 2004/05/27 - 18:51:23 »
引用して返信

どこかで Bitmap を取得するサンプルを見たことがあって、この方法を使っていたのですが、場所がわかりました!

SWUSのLinkにも載っている「SolidWorks Tools」と言うページです。
http://swtools.cad.de/
でいけると思います。

このページのDownloadにあるPreview Bitmapが、そのもののサンプルです。
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #8 投稿日: 2004/05/27 - 19:22:11 »
引用して返信

Makoronさん
本当にいろいろありがとうございます
Makoronさんの返答内容は私にとってはまさに宝の
やまになりそうです
といいながら、時間がなくてまだFileOpenDialogも試せていませんが

>>VBやVBAの参照設定で設定したライブラリーは、
>>オブジェクトブラウザで表示すると、プロパティやメッソッドが確認できるので
やっぱり手探りで動作確認をしていくということですかーー
Referanceもつけてほしいですよねーーー 

>>どこかで Bitmap を取得するサンプルを見たことがあって
というのは画像をスケッチ画像としてSWに取り込むってやつではない
んですか?それなら私 InsertSketchPicture(pass名称 as string)メソッド
で使ってるんですが Preview Bitmapメソッドだと違うようですね。
InsertSketchPicture(pass名称 as string)メソッド実行したあと
尺度の変更まで自動で行いたいんですけど,これまたヘルプには載ってない
んですよねーー。でも,Makoronさんの方法でいろんなDLLを取り込んでいけば
見つかるかもしれませんねーー

議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #9 投稿日: 2004/05/27 - 19:57:04 »
引用して返信

'
引用元: hiropon 投稿日 '.timeformat('1085653331').'   
'>>どこかで Bitmap を取得するサンプルを見たことがあって
というのは画像をスケッチ画像としてSWに取り込むってやつではない
んですか?

ちょっと説明が悪かったみたいです。
extractBitMap2Fileを使ったサンプルと言う意味です。
僕がパクッたサンプルの本家サンプルと言うことです。

議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #10 投稿日: 2004/05/31 - 12:59:22 »
引用して返信

Makoronさん
お世話になっています
試してみました。。。有難かったのですが私のおもっているような
動作ではありませんでした。
というのも、返り値や(C風にゆう)ポインタ参照等でパスを返してきて
ほしかったのです。
エクセルの私が記述した
Application.Dialogs(xlDialogOpen).Show
という表現が悪かったです。勘違いしてました
Application.GetOpenFilename(ffilter, 1, title, "選択", a)
でした。これならパス名称が返り値でかえってきます。
オブジェクトブラウザでザっと見た感じパスがかえってくるような関数はないと
思いました。
もしご存知ならよろしければご指南いただけませんでしょうか。

議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #11 投稿日: 2004/05/31 - 13:40:07 »
引用して返信

VBであれば、コモンダイアログ(CommonDialog)コントロールを使うとWindowsの開くダイアログが表示され[OK]ボタンでパスが帰ってきたと思います。
(VBAでもOKだと思いますが...)

もし、SWファイルのみのフィルターをかけたければ、このコントロールのプロパティ値に拡張子を指定してあげれば可能なはずです。
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #12 投稿日: 2004/05/31 - 14:36:02 »
引用して返信

Makoronさん
お世話になっています
素早い返信ありがとうございます。
>>(VBAでもOKだと思いますが...)
実はVBAにはコモンダイアログコントロール使えないんです。。。
とほほです。。。私もこれでExellでVBAを組んでいるときに苦労して
やっとGetOpenFilename関数を見つけた次第です。
私の知識不足かも知れませんが・・・・



議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #13 投稿日: 2004/05/31 - 19:44:07 »
引用して返信

SWのマクロで開くダイアログを表示するサンプルを作ってみました。
Macro1.swp

また、こんなページも見つけましたので見てみてはどうでしょう。
http://www.amy.hi-ho.ne.jp/banchan/sw/vba/v4.html


1つ目は、VBAでフォームを作り、そこにコモンダイアログをのっけて実行しています。
2つ目は、チラッと見ただけで詳細はわかりませんが、WindowsAPIからコモンダイアログを使用している感じです。
 Macro1.lzh
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #14 投稿日: 2004/06/01 - 13:29:14 »
引用して返信

Makoronさん お世話になっております。
WindowsAPIまで見つけて頂いたなんて感謝のしようも
ありません。本当にありがとうございます 
例によってまだ試せてませんが・・・

Makoronさんのご指南で、”そしたら、ExcellのDll取り込んでGetOpenFilename
関数使ったらできるやん”と思って以下のような感じで使ったところ見事にretに
パス名が返ってきました。   
  Set exApp = CreateObject("Excel.Application")
    ret = exApp.GetOpenFilename(ffilter, 1, "ファイル選択", "選択", a)     
よかったよかった。。。でも、ちょっと挙動不信なので
MakoronさんのAPIためしてみます。
あと、私の作成しているマクロはもうひとつ難問があって上記の方法でパスが
返ってきたらそのファイルをOpenしなくてはいけません(エクセルファイルをOpen)。
そこで、
  Set exbook = exApp.WorkBooks
    exbook.OpenText(ret)  'OpenTextはWorkBooksクラスのメソッド
とやっても起動しないのです。タスクマネージャーのプロセスをみるとEXCELがあるの
でPCは起動していると、認識しているようです(もう一回おなじパス名をいれると
”現在使用中なので読み取り専用で開きます”というようなメッセージがでます。)
でも、表示がされないのでほとほと困り果てております。シェル関数を使用して
エクセルを起動させてもやっぱりOpenTextのところで目的のファイルはOpenして
くれません。
WindowsAPIにいいのがあるのかなーー。とも思ったりするのですが、実は私
ソフトの人間ではありませんのであまり詳しくないというのが実情です。

また質問みたいになってしまいますがご存知で、もしよろしかったらご指南いただけま
せんでしょうか?お願いいたします。
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #15 投稿日: 2004/06/01 - 13:38:53 »
引用して返信

あと、VBAでもコモンコントロール使えるんですねーー
私の知識不足でした。みごとにFileNameプロパティにパスが
入っていました。でもどこにコントロールあるんでしょうか
結構探したつもりだったんですが・・・・

議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #16 投稿日: 2004/06/01 - 14:24:30 »
引用して返信


引用:
あと、私の作成しているマクロはもうひとつ難問があって上記の方法でパスが返ってきたらそのファイルをOpenしなくてはいけません(エクセルファイルをOpen)。
そこで、
  Set exbook = exApp.WorkBooks
    exbook.OpenText(ret)  'OpenTextはWorkBooksクラスのメソッド
とやっても起動しないのです。タスクマネージャーのプロセスをみるとEXCELがあるのでPCは起動していると、認識しているようです(もう一回おなじパス名をいれると”現在使用中なので読み取り専用で開きます”というようなメッセージがでます。)
でも、表示がされないのでほとほと困り果てております。シェル関数を使用して
エクセルを起動させてもやっぱりOpenTextのところで目的のファイルはOpenしてくれません。

ExcelのAPIに関してはあまり詳しくないので、正しい解答になっているかは?ですが、SWの様にバックグラウンド起動しているのではないでしょうか。

SolidWorksの例で言うとこんな感じです。
SolidWorksをVBから起動しただけでは画面に表示されず、プロセスだけが起動したようになります。
画面に表示しての対話操作を行いたい場合は「表示する」と言う指示を与えなければいけません。
以下の様にするとSWが起動し、画面に表示されます。
  Set swApp = CreateObject("SldWorks.Application")
  swApp.Visible = True
  swApp.UserControl = True

引用:
でもどこにコントロールあるんでしょうか
結構探したつもりだったんですが・・・・

以下の手順で、出来ると思います。
(VB6ランタイムなどがインストールされてないとダメなのかも...?)
1.VBAでユーザフォームを挿入する。
2.ユーザフォームがアクティブになっている状態で、メニュー[ツール]の[そのたコントロール]を選択する。
3.「コントロールの追加」ダイアログが表示されるので、「Microsoft Common Dialog Control」にチェックを付ける。 (このコントロールの実態は「COMDLG32.OCX」となります。)
4.これでユーザフォームを表示した時に表示される「ツールボックス」にコモンダイアログのコントロールが追加されます。
5.後はこのコントロールをフォームにのっければOKです。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #17 投稿日: 2004/06/01 - 14:31:04 »
引用して返信

書いた後に、エクセルのヘルプを見て気づいたのですが、
エクセルのApplication オブジェクトに
「Visible プロパティ」と「UserControl プロパティ」
がありますね。

もしかして、SolidWorks同じように
  Set exApp = CreateObject("Excel.Application")
  exApp.Visible = True
  exApp.UserControl = Ture
でいけるのではないでしょうか?

テストもせずに、適当に書きましたが試してみる価値はあるかも。
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #18 投稿日: 2004/06/01 - 15:58:44 »
引用して返信

またまた早速のご返信本当にありがとうございます。
>SolidWorksをVBから起動しただけでは画面に表示されず、プロセスだけが起動し
>たようになります。
ありがとうございます。私の作った他のマクロでSolidWorksを自動起動して作業していくというのがるのですが、Makoronさんがおっしゃるようにバックグランドで動いていて
原因がわからなかったのでほったらかしになっています。これで解決しました。
もっと早くMakoronさんに聞いていれば・・・
Exellもおなじなんですねーー多分
ちょっと試してみます。
ありがとうございます。
議長に報告する   記録済み
hiropon
Sr. メンバー
****

オフライン

投稿: 84



I'm a llama!

プロファイルを見る
Re:ファイルOpenDialogの起動
« 返信 #19 投稿日: 2004/06/01 - 17:28:06 »
引用して返信

Makoronさんできちゃいました
いままで苦労していたのがバカらしくなるぐらいすんなりいきました。
うれしいやらかなしいやら。
試したのはExcell自動起動のほうなので、SolidWorks自動起動も
やってみます。
本当にお世話になりました。万事解決です。ありがとう御座いました。
議長に報告する   記録済み
ページ: [1] 2 Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: ファイルOpenDialogの起動 前のトピック 次のトピック
ジャンプします: