Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1322 / 2272 ツリー ←次へ | 前へ→

【7718】ダイアログボックスについての質問 06/4/20(木) 9:39 質問[未読]
【7719】Re:ダイアログボックスについての質問 たぬき 06/4/20(木) 11:22 発言[未読]
【7720】Re:ダイアログボックスについての質問 06/4/20(木) 11:45 質問[未読]
【7722】Re:ダイアログボックスについての質問 てっちゃん 06/4/20(木) 13:56 回答[未読]
【7725】Re:ダイアログボックスについての質問 06/4/20(木) 14:32 お礼[未読]
【7723】Re:ダイアログボックスについての質問 たぬき 06/4/20(木) 14:25 発言[未読]
【7724】Re:ダイアログボックスについての質問 06/4/20(木) 14:30 お礼[未読]

【7718】ダイアログボックスについての質問
質問   E-MAIL  - 06/4/20(木) 9:39 -

引用なし
パスワード
   ACCESS2000にてAPIを使用で、
ダイアログボックスを作成することはできたのですが、
そのダイアログボックスからネットワークコンピュータ内の
各パソコン配下のフォルダを指定することができません。
何かやり方があるのか、もともと出来ないかが分かりません。
できなければ、ウインドウズのエクスプローラのように
ネットワークコンピュータ内の各パソコン配下のフォルダを
指定(アドレス指定も可能にしたいです)する方法が
ないものでしょうか?
この時、指定されたフォルダアドレスの取得は行いたいので
エクスプローラ起動だけではまずいのですが何かいい
PGはないでしょうか?APIでもなんでも構いませんので
初心者の私でもできる方法(PGでも可)はないもでしょうか?
よろしくお願い致します。

【7719】Re:ダイアログボックスについての質問
発言  たぬき  - 06/4/20(木) 11:22 -

引用なし
パスワード
   ▼J さん:
> ACCESS2000にてAPIを使用で、
> ダイアログボックスを作成することはできたのですが、
意味が分かりません。これだとCreateWindowでダイアログ
ボックス作ったみたいです。

> 各パソコン配下のフォルダを指定することができません。
でも上記によりフォルダ指定のダイログかあるいはコモン
ダイアログを表示させているのかもしれません。
使っているAPI関数を書いてください。

SHBrowseForFolder
GetOpenFileName
GetSaveFileName

あたりだと思いますが・・・

【7720】Re:ダイアログボックスについての質問
質問   E-MAIL  - 06/4/20(木) 11:45 -

引用なし
パスワード
   たぬき さん:
早速のお返事有難うございます。
よく分からない内容ですいません。
APIは
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
  "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Boolean

を使用しています。

なんとかネットワークコンピュータを指定できるとこまで
たどりついたのですが、ファイルの場所を選択する時に
ファイルアドレスが任意に指定できません。
任意に指定する方法を一緒に行う方法はないものでしょうか?
例:ネットワークコンピュータ名がAというものがあって
  そのAの中にABというフォルダがあった場合
  エクスプローラのアドレス部と同じように
  \\A\AB と入力することでファイルの場所が移動できる


>▼J さん:
>> ACCESS2000にてAPIを使用で、
>> ダイアログボックスを作成することはできたのですが、
>意味が分かりません。これだとCreateWindowでダイアログ
>ボックス作ったみたいです。
>
>> 各パソコン配下のフォルダを指定することができません。
>でも上記によりフォルダ指定のダイログかあるいはコモン
>ダイアログを表示させているのかもしれません。
>使っているAPI関数を書いてください。
>
>SHBrowseForFolder
>GetOpenFileName
>GetSaveFileName
>
>あたりだと思いますが・・・

【7722】Re:ダイアログボックスについての質問
回答  てっちゃん  - 06/4/20(木) 13:56 -

引用なし
パスワード
   ▼J さん:
>APIは
>Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
>  "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Boolean
>を使用しています。

「ファイルを開く」であれば、APIではありませんが、
Wizhook関数(?)を使うのはどうでしょう?

詳細は
http://x7net.com/~access/AcTipsGetFileName.html
にあります。

簡単な例は、
Private Sub TEST_Wizhook()
  Dim myINT As Integer
  Dim myFileName As String
  Dim myPath As String
  
  'フォルダのパスを指定
  myPath = "\\A\AB\"
  
  'ファイル名の取得
  WizHook.Key = 51488399   ' WizHook 有効化
  myINT = WizHook.GetFileName(0, "", "", "", myFileName, myPath, _
            "えくせるふぁいる (*.xls)|*.xls", 0, 0, 0, True)
  WizHook.Key = 0       ' WizHook 無効化
  
  'ファイル名を取得した場合
  If myINT = 0 Then
    Debug.Print myFileName
  End If
  
End Sub
こんな感じです。

一応参考までに。

検討違いな回答でしたらごめんなさい。

【7723】Re:ダイアログボックスについての質問
発言  たぬき  - 06/4/20(木) 14:25 -

引用なし
パスワード
   ▼J さん:
こちらではネットワークもその下もみれます。
他のアプリケーション等で「開く」でみることができる
のでしょうか?
どのアプリケーションも同じコモンダイアログを呼んで
いると思うので違いが分かりません。

OPENFILENAME構造体にどんな値を渡してるか教えてくだ
さい。

【7724】Re:ダイアログボックスについての質問
お礼   E-MAIL  - 06/4/20(木) 14:30 -

引用なし
パスワード
   ▼たぬき さん:
なんとかなりました。
いろいろと有難うございました。


>▼J さん:
>こちらではネットワークもその下もみれます。
>他のアプリケーション等で「開く」でみることができる
>のでしょうか?
>どのアプリケーションも同じコモンダイアログを呼んで
>いると思うので違いが分かりません。
>
>OPENFILENAME構造体にどんな値を渡してるか教えてくだ
>さい。

【7725】Re:ダイアログボックスについての質問
お礼   E-MAIL  - 06/4/20(木) 14:32 -

引用なし
パスワード
   ▼てっちゃん さん:
早速のお返事有難う御座いました。
Wizhookいいですね。
こちらでなんとかなりそうです。
有難うございました。

>▼J さん:
>>APIは
>>Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
>>  "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Boolean
>>を使用しています。
>
>「ファイルを開く」であれば、APIではありませんが、
>Wizhook関数(?)を使うのはどうでしょう?
>
>詳細は
>http://x7net.com/~access/AcTipsGetFileName.html
>にあります。
>
>簡単な例は、
>Private Sub TEST_Wizhook()
>  Dim myINT As Integer
>  Dim myFileName As String
>  Dim myPath As String
>  
>  'フォルダのパスを指定
>  myPath = "\\A\AB\"
>  
>  'ファイル名の取得
>  WizHook.Key = 51488399   ' WizHook 有効化
>  myINT = WizHook.GetFileName(0, "", "", "", myFileName, myPath, _
>            "えくせるふぁいる (*.xls)|*.xls", 0, 0, 0, True)
>  WizHook.Key = 0       ' WizHook 無効化
>  
>  'ファイル名を取得した場合
>  If myINT = 0 Then
>    Debug.Print myFileName
>  End If
>  
>End Sub
>こんな感じです。
>
>一応参考までに。
>
>検討違いな回答でしたらごめんなさい。

1322 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078228
(SS)C-BOARD v3.8 is Free