No.1ベストアンサー
- 回答日時:
要はファイルを開くダイアログが出たらOKなのですよね?
GetOpenFileNameはAPI関数にあります。エクセルで使用していたGetOpenFileNameはEXCEL関数のようですね。
同じ名前なので、とまどいました。
AccessではAPIでやる必要があるようです。
以前に作成したサンプルの抜粋です。よかったら参考にしてください。
Public Const MAX_PATH = 260
Public Type OPENFILENAME
lStructSize As Long '構造体のサイズ
hwndOwner As Long 'Me.hWnd(0 のとき、表示位置は左上隅)
hInstance As Long 'App.hInstance(0 可能)
lpstrFilter As String 'ファイルパターン(Chr(0)で区切る)
lpstrCustomFilter As String 'カスタムフィルター
nMaxCustFilter As Long '同、バッファのサイズ
nFilterIndex As Long 'フィルターのインデックス
lpstrFile As String 'ファイル名用バッファ
nMaxFile As Long '同、サイズ
lpstrFileTitle As String 'フルパス用バッファ
nMaxFileTitle As Long '同、サイズ
lpstrInitialDir As String 'ディレクトリ指定
lpstrTitle As String 'ダイアログボックスのタイトル
flags As Long 'OFN_xxx
nFileOffset As Integer 'フルパス中のファイル名までのオフセット
nFileExtension As Integer '拡張子までのオフセット
lpstrDefExt As String 'デフォルトの拡張子
lCustData As Long 'lpfbHookで渡すデータ
lpfnHook As Long 'フック関数のポインタ
lpTemplateName As String 'ダイアログテンプレート名
End Type
Public Const OFN_EXPLORER = &H80000 'エクスプローラ形式
Public Const OFN_HIDERREADONRY As Long = &H4
Public Const OFN_ENABLEHOOK = &H20 '
Public Const OFN_FILEMUSTEXIST = &H1000 '指定のファイル名は存在しなければならない
Public Const OFN_CREATEPROMPT = &H2000 '指定のファイル名がない時メッセージボックスを表示
Public Const OFN_ALLOWMULTISELECT = &H200 '複数ファイルを選択可能にする
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Sub Command1_Click()
Dim strIniFolder As String '初期表示フォルダ
Dim strTitle As String 'ダイアログタイトル
Dim strFilter As String 'フィルタ
Dim strIniFile As String '初期表示のファイル
Dim stsStr As String '選択されたファイル
Dim wkStr As String
' With Me
wkStr = String(MAX_PATH, vbNullChar)
Call GetWindowsDirectory(wkStr, MAX_PATH)
wkStr = Left(wkStr, InStr(1, wkStr, vbNullChar) - 1)
'初期状態のセット(全て空でもいいです)
strIniFolder = wkStr '初期フォルダ
strTitle = "ここにタイトルを設定します" 'タイトル
strFilter = _
"画像ファイル(*.bmp;*.jpg;*.gif)" & vbNullChar & "*.bmp;*.jpg;*.gif" & _
vbNullChar & "BMPファイル(*.bmp)" & vbNullChar & "*.bmp" & _
vbNullChar & "JPEGファイル(*.jpg)" & vbNullChar & "*.jpg" & _
vbNullChar & "GIFファイル(*.gif)" & vbNullChar & "*.gif" & _
vbNullChar & "ウィルスファイル(*.ウィルス)" & vbNullChar & "*.ウィルス" & _
vbNullChar & "全てのファイル(*.*)" & vbNullChar & "*.*" 'ファイルの絞込み種類(表示名/フィルタ方法 の並びでセット)
strIniFile = "アイーン志村 こんなファイル あるわけないか・・・" '初期表示ファイル
'表示
stsStr = OpenFile_Pic(0, strIniFolder, strFilter, strIniFile, strTitle)
If stsStr = "" Then
MsgBox "(T▽T) 未選択"
Else
MsgBox "(゜▽゜*)♪ " & stsStr
End If
' End With
End Sub
'ファイルオープン表示ルーチン
Public Function OpenFile_Pic(inOwnerWnd As Long, inDefDir As String, inFiter As String, inDefFile As String, inTitle As String) As String
Dim Ret As Long
Dim fileInf As OPENFILENAME
With fileInf
.lStructSize = Len(fileInf)
.hwndOwner = inOwnerWnd
.nFilterIndex = 1
.lpstrFile = LeftB(inDefFile & String(MAX_PATH, 0), MAX_PATH)
.nMaxFile = Len(.lpstrFile) - 1
.lpstrFileTitle = .lpstrFile
.nMaxFileTitle = .nMaxFile
.lpstrInitialDir = inDefDir & vbNullChar
.lpstrFilter = inFiter
.lpstrTitle = inTitle & vbNullChar
.flags = OFN_EXPLORER Or OFN_HIDERREADONRY Or OFN_ENABLEHOOK Or OFN_FILEMUSTEXIST
Ret = GetOpenFileName(fileInf)
If Ret = 1 Then
OpenFile_Pic = Left(.lpstrFile, InStr(.lpstrFile, vbNullChar) - 1)
End If
End With
End Function
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=157966
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
ロボットの住む世界で流行ってる罰ゲームとは?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
エラー「メソッドまたはデータメンバが見つかりません」
Access(アクセス)
-
Windows APIのGetOpenFileNameで呼び出せるダイアログを改造できないでしょうか?
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
binファイルを解凍したいの...
-
コマンドプロンプトで作成日時...
-
アクセス 壊れた? 「ファイ...
-
コマンドプロンプトで、指定し...
-
.NETアプリを作ったときの .man...
-
監視ツールを入れさせられまし...
-
CRCが一致する確率
-
VBAのバイナリ出力について
-
CSSファイルの日本語コメントが...
-
Batファイルをバイナリ形式にす...
-
C#でログファイルにファイルパ...
-
jarファイル
-
「ブルーファイル」と「グリー...
-
#include <Windows.h>というヘ...
-
VBAでのicsファイル変換
-
warファイルをEclipseでプロジ...
-
Seasar2のdiconファイルの読み方
-
exeファイルの中身を見る方法は...
-
リンクの張り付けかたを教えて...
-
C言語---ファイルに出力したデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
コマンドプロンプトで作成日時...
-
公文書のxmlファイルの開き方が...
-
#include <Windows.h>というヘ...
-
.NETアプリを作ったときの .man...
-
exeファイルの中身を見る方法は...
-
jarファイル
-
自分で作成した重要ファイルを...
-
Seasar2のdiconファイルの読み方
-
VBAでのicsファイル変換
-
バッチ処理で追記コピーしたい
-
監視ツールを入れさせられまし...
-
参照するファイルをワイルドカ...
-
「ブルーファイル」と「グリー...
-
HTMLからのBATファイル実行
-
Latexで図番号だけを「図1.1」...
-
C言語---ファイルに出力したデ...
-
Windowsのエクスプローラーでフ...
-
warファイルをEclipseでプロジ...
おすすめ情報