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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iPhoneでXMLファイルを開くには...
-
binファイルを解凍したいの...
-
公文書のxmlファイルの開き方が...
-
Latexで図番号だけを「図1.1」...
-
ファイル圧縮と解凍について
-
reaper音声ファイルについて
-
○○○.zip.001というファイルが開...
-
参照するファイルをワイルドカ...
-
VBで「.tif」または「.pdf」...
-
ファイルフォーマットに関して
-
CSSを1ページに1枚作るのって変...
-
コマンドプロンプトで作成日時...
-
TIFFファイルを印刷できますか?
-
アセンブリの実行ファイルをソ...
-
LINEからPCに移したファイルが...
-
Tomcatのプロジェクトのクラス...
-
C言語---ファイルに出力したデ...
-
aspファイルの開き方
-
exeファイルをデータ転送サービ...
-
HTAのウィンドウを閉じるには・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
binファイルを解凍したいの...
-
コマンドプロンプトで作成日時...
-
アクセス 壊れた? 「ファイ...
-
.NETアプリを作ったときの .man...
-
#include <Windows.h>というヘ...
-
公文書のxmlファイルの開き方が...
-
Latexで図番号だけを「図1.1」...
-
jarファイル
-
Seasar2のdiconファイルの読み方
-
自分で作成した重要ファイルを...
-
C言語---ファイルに出力したデ...
-
コマンドプロンプトで、指定し...
-
ファイルが開かれているかどう...
-
exeファイルの中身を見る方法は...
-
リンクの張り付けかたを教えて...
-
VBAでのicsファイル変換
-
「ブルーファイル」と「グリー...
-
HTMLからのBATファイル実行
-
VBSが起動しない
-
CSSを1ページに1枚作るのって変...
おすすめ情報