|
▼YU-TANG さん:
こんにちは。
ご指摘ありがとうございます。
>API を意味が分からないままコピペで使うほうがよほど危険な気が
>しますが…。
>WizHook は Access の内部クラスですから、Office のバージョン
>アップに伴って MS がメンテナンスしています。ですから
>WizHook.GetFileName は Unicode に対応していますし、今後の
>新しい OS 上でも (Office がそれをサポートするのであれば)
>問題なく動作するようメンテされることが期待できます。
>一方で、yoko さんがお使いの API は ANSI 版の方ですよね。
>cp932 にマッピングされない Unicode 文字がファイル名に混入した
>場合の対応は、yoko さんが行わなければ他の誰も行ってくれません。
>これも一種のリスクに値するのではないかと思いますが、いかが
>でしょうか。
確かにそうです。。。
上司が作成した関数をただ使用していただけなので
内部については理解しようとしていませんでした…。
>どこで何を調べましたか?
>MSDN で MS の公式な解説は確認済みでしょうか?
>
>GetOpenFileName 関数
>ht tp://msdn.microsoft.com/ja-jp/library/cc364716.aspx
>
>OPENFILENAME Structure ()
>ht tp://msdn.microsoft.com/en-us/library/ms646839(VS.85).aspx
>
>非公式の解説は山のようにあります。そちらも確認済みですか?
>一例。
>
>OPENFILENAME構造体
>ht tp://hp.vector.co.jp/authors/VA023539/tips/dialog/004.htm
>
>上記はすべて「msdn GetOpenFileName」で Google 検索すると、
>最初の 1 ページ目に出てくるものです (というか、1 位と 2 位を
>拾っただけ)。
私は「VBA GetOpenFileName モーダル」で Yahoo 検索していました…。
なかなかヒットするものがなく質問に至りました。
>で、それを読むと「hwndOwner」の指定がちゃんとされているのかが
>最初の確認ポイントになることが分かると思うのですが、指定は
>どうなっていますか。
>
>それから、宣言だけ書かれても、実行コードの提示が無いとほとんど
>意味がありません。「文字列変換がうまくいかないのですが、何が
>いけないのでしょうか」という質問で「Dim s As String」しか書いて
>いないのと一緒です。問題点を指摘しようがないので、できれば
>実行コードも提示してください。
>
With LTag
.lpstrTitle = "タイトル"
.lStructSize = Len(LTag)
.hwndOwner = Application.hWndAccessApp
.lpstrFile = String$(5120, Chr$(0))
.nMaxFile = 5120
.lpstrFilter = "圧縮(zip形式)ファイル (*.zip)" & vbNullChar & "*.zip"
.nFilterIndex = 1
.Flags = &H4
End With
If GetOpenFileName(LTag) Then
' ---* 正常時の処理
Else
' ---* キャンセル時の処理
End If
すみません。説明不足でした。
↑実行コードは上記の通りです。
># 老婆心ながら、メールアドレスは非表示に修正した方がいいです。
># スパムが殺到しますよ。
気づきませんでした!
ありがとうございます。
提示していただいたURLを参考に自力でがんばってみます!
ありがとうございました(*・ω・)*_ _)ペコリ
|
|